<!DOCTYPE html>
	<html lang="vi" xmlns="http://www.w3.org/1999/xhtml" prefix="og: http://ogp.me/ns#">
	<head>
<title>&#91;C++ Cơ bản&#93; Phần 12&#x3A; Câu lệnh điều kiện</title>
<meta name="description" content="&#91;C++ Cơ bản&#93; Phần 12&#x3A; Câu lệnh điều kiện - Savefile - Tin Tức - https&#x3A;&#x002F;&#x002F;tinhocdct.xyz&#x002F;savefile&#x002F;hoat-dong-chuyen-mon&#x002F;c-co-ban-phan-12-cau-lenh-dieu-kien-105.html">
<meta name="author" content="TỔ TIN HỌC TRƯỜNG THPT ĐỖ CÔNG TƯỜNG">
<meta name="copyright" content="TỔ TIN HỌC TRƯỜNG THPT ĐỖ CÔNG TƯỜNG [webmaster@tinhocdct.xyz]">
<meta name="robots" content="index, archive, follow, noodp">
<meta name="googlebot" content="index,archive,follow,noodp">
<meta name="msnbot" content="all,index,follow">
<meta name="generator" content="NukeViet v4.0">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta property="og:title" content="&#91;C++ Cơ bản&#93; Phần 12&#x3A; Câu lệnh điều kiện">
<meta property="og:type" content="website">
<meta property="og:description" content="Savefile - Tin Tức - https&#x3A;&#x002F;&#x002F;tinhocdct.xyz&#x002F;savefile&#x002F;hoat-dong-chuyen-mon&#x002F;c-co-ban-phan-12-cau-lenh-dieu-kien-105.html">
<meta property="og:site_name" content="TỔ TIN HỌC TRƯỜNG THPT ĐỖ CÔNG TƯỜNG">
<meta property="og:url" content="https://tinhocdct.xyz/hoat-dong-chuyen-mon/c-co-ban-phan-12-cau-lenh-dieu-kien-105.html">
<link rel="shortcut icon" href="https://tinhocdct.xyz/favicon.ico">
<link rel="canonical" href="https://tinhocdct.xyz/hoat-dong-chuyen-mon/c-co-ban-phan-12-cau-lenh-dieu-kien-105.html">
<link rel="alternate" href="https://tinhocdct.xyz/rss/" title="Tin Tức" type="application/rss+xml">
<link rel="alternate" href="https://tinhocdct.xyz/rss/tin-tuc/" title="Tin Tức - TIN TỨC" type="application/rss+xml">
<link rel="alternate" href="https://tinhocdct.xyz/rss/thong-cao-bao-chi/" title="Tin Tức - THÔNG BÁO" type="application/rss+xml">
<link rel="alternate" href="https://tinhocdct.xyz/rss/ban-tin-noi-bo/" title="Tin Tức - BẢN TIN NỘI BỘ" type="application/rss+xml">
<link rel="alternate" href="https://tinhocdct.xyz/rss/tin-cong-nghe/" title="Tin Tức - CÔNG NGHỆ - KHOA HỌC" type="application/rss+xml">
<link rel="alternate" href="https://tinhocdct.xyz/rss/thu-thuat/" title="Tin Tức - THỦ THUẬT" type="application/rss+xml">
<link rel="alternate" href="https://tinhocdct.xyz/rss/tien-ich/" title="Tin Tức - TIỆN ÍCH" type="application/rss+xml">
<link rel="alternate" href="https://tinhocdct.xyz/rss/ai/" title="Tin Tức - AI" type="application/rss+xml">
<link rel="alternate" href="https://tinhocdct.xyz/rss/khoa-hoc/" title="Tin Tức - KHOA HỌC" type="application/rss+xml">
<link rel="alternate" href="https://tinhocdct.xyz/rss/hoat-dong-chuyen-mon/" title="Tin Tức - HOẠT ĐỘNG CHUYÊN MÔN" type="application/rss+xml">
<link rel="alternate" href="https://tinhocdct.xyz/rss/hoat-dong-cong-doan/" title="Tin Tức - CÔNG ĐOÀN" type="application/rss+xml">
<link rel="alternate" href="https://tinhocdct.xyz/rss/hoat-dong-doan-the/" title="Tin Tức - ĐOÀN THỂ" type="application/rss+xml">
<link rel="alternate" href="https://tinhocdct.xyz/rss/tuyen-sinh-huong-nghiep/" title="Tin Tức - TUYỂN SINH - HƯỚNG NGHIỆP" type="application/rss+xml">
<link rel="alternate" href="https://tinhocdct.xyz/rss/tuyen-sinh-2025/" title="Tin Tức - TUYỂN SINH" type="application/rss+xml">
<link rel="alternate" href="https://tinhocdct.xyz/rss/huong-nghiep/" title="Tin Tức - HƯỚNG NGHIỆP" type="application/rss+xml">
<link rel="alternate" href="https://tinhocdct.xyz/rss/lich-cong-tac-tuan/" title="Tin Tức - Lịch công tác tuần" type="application/rss+xml">
<link rel="preload" as="script" href="https://tinhocdct.xyz/assets/js/jquery/jquery.min.js">
<link rel="preload" as="script" href="https://tinhocdct.xyz/assets/js/language/vi.js">
<link rel="preload" as="script" href="https://tinhocdct.xyz/assets/js/global.js">
<link rel="preload" as="script" href="https://tinhocdct.xyz/themes/default/js/news.js">
<link rel="preload" as="script" href="https://tinhocdct.xyz/themes/default/js/main.js">
<link rel="preload" as="script" href="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-1816161148536198">
<link rel="preload" as="script" href="https://tinhocdct.xyz/themes/default/js/bootstrap.min.js">
<link rel="StyleSheet" href="https://tinhocdct.xyz/assets/css/font-awesome.min.css">
<link rel="StyleSheet" href="https://tinhocdct.xyz/themes/default/css/bootstrap.non-responsive.css">
<link rel="StyleSheet" href="https://tinhocdct.xyz/themes/default/css/style.css">
<link rel="StyleSheet" href="https://tinhocdct.xyz/themes/default/css/style.non-responsive.css">
<link rel="StyleSheet" href="https://tinhocdct.xyz/themes/default/css/news.css">
<style>
	body{background: #fff;}
</style>
	</head>
	<body>
<div id="print">
	<div id="hd_print">
		<h2 class="pull-left">TỔ TIN HỌC TRƯỜNG THPT ĐỖ CÔNG TƯỜNG</h2>
		<p class="pull-right"><a title="TỔ TIN HỌC TRƯỜNG THPT ĐỖ CÔNG TƯỜNG" href="https://tinhocdct.xyz/">https://tinhocdct.xyz</a></p>
	</div>
	<div class="clear"></div>
	<hr />
	<div id="content">
		<h1>&#91;C++ Cơ bản&#93; Phần 12&#x3A; Câu lệnh điều kiện</h1>
		<ul class="list-inline">
			<li>Chủ nhật - 11/04/2021 10:36</li>
			<li class="hidden-print txtrequired"><em class="fa fa-print">&nbsp;</em><a title="In ra" href="javascript:;" onclick="window.print()">In ra</a></li>
			<li class="hidden-print txtrequired"><em class="fa fa-power-off">&nbsp;</em><a title="Đóng cửa sổ này" href="javascript:;" onclick="window.close()">Đóng cửa sổ này</a></li>
		</ul>
		<div class="clear"></div>
		<div id="hometext">
			Không cần phải giải thích nhiều về tầm quan trọng của câu lệnh điều kiện - câu lệnh điều kiện trao cho chương trình máy tính sự linh hoạt, vào trường hợp này phải xử lý như thế này, vào trường hợp kia phải xử lý như thế kia, vân vân… Nếu không có câu lệnh điều kiện, sẽ không có những chương trình máy tính hiện đại mà chúng ta sử dụng.
		</div>
				<div class="imghome">
			<img alt="&#91;C++ Cơ bản&#93; Phần 12&#x3A; Câu lệnh điều kiện" src="https://tinhocdct.xyz/uploads/news/2021_04/cpp-co-ban-1-3.jpg" width="460" class="img-thumbnail" />
		</div>
		<div class="clear"></div>
		<div id="bodytext" class="clearfix">
			<p><em>Phần trước:&nbsp;<a href="http://tinhocdct.xyz/hoat-dong-chuyen-mon/c-co-ban-phan-11-ham-chuong-trinh-con-104.html" target="_blank">&#91;C++ Cơ bản&#93; Phần 11: Hàm - Chương trình con</a></em><br  />
Bài viết này sẽ nói về các cách triển khai câu lệnh điều kiện trong C++</p>

<h1 id="toán-tử-điều-kiện">Toán tử điều kiện</h1>

<p>Như đã nói trong bài viết về toán tử, toán tử điều kiện là cấu trúc có dạng</p>

<pre>
<code>giá_trị_bool? giá_trị_thứ_nhất : giá_trị_thứ_hai
</code></pre>

<p>Nếu như giá trị&nbsp;<code>bool</code>&nbsp;là&nbsp;<code>true</code>, toán tử này sẽ trả về giá trị thứ nhất. Nếu là&nbsp;<code>false</code>, toán tử sẽ trả lại giá trị thứ hai.</p>

<p>Ví dụ: Chương trình sau có một hàm&nbsp;<code>isEven()</code>, trả về&nbsp;<code>true</code>&nbsp;nếu tham số là chẵn và ngược lại. Ta sẽ sử dụng toán tử điều kiện để in ra&nbsp;<code>&quot;True&quot;</code>&nbsp;nếu hàm trả về&nbsp;<code>true</code>&nbsp;và&nbsp;<code>&quot;False&quot;</code>&nbsp;nếu hàm trả về&nbsp;<code>false</code>.</p>

<figure>
<pre>
<code data-lang="c++">#include &lt;iostream&gt;

using namespace std;

bool isEven(int x)
{
    return x % 2 == 0;
}

int main()
{
    int x; cin &gt;&gt; x;
    cout &lt;&lt; (isEven(x)? &quot;True&quot; : &quot;False&quot;);
    return 0;
}</code></pre>
</figure>

<p><br  />
<br  />
<br  />
<br  />
<br  />
<br  />
<br  />
<br  />
<br  />
<br  />
<br  />
<br  />
<br  />
<br  />
<br  />
Hãy thử nhập&nbsp;<code>x</code>&nbsp;với các giá trị khác nhau và xem kết quả.</p>

<h1 id="từ-khóa-if">Từ khóa&nbsp;<code>if</code></h1>

<p>Trong phần lớn trường hợp, khi điều kiện được thỏa mãn thì ta cần phải thực hiện một hoặc một nhóm các hành động, thay vì trả lại một giá trị nào đó.</p>

<p>Ví dụ: Nhà bạn đang nuôi một bé doge. Hằng ngày bé doge sẽ vui chơi, mệt và bị đói.&nbsp;<strong>Khi bị đói, bé doge sẽ sủa đòi ăn.</strong>&nbsp;Đó là ví dụ về một hành động xảy ra khi điều kiện được thỏa mãn.</p>

<p><img alt="undefined" src="https://cowboycoder.tech/img/uploads/cpp-c%C6%A1-b%E1%BA%A3n-12-1.jpg" /></p>

<p>Để có thể thực hiện một lệnh/nhóm lệnh khi có một điều kiện được thỏa mãn, ta sử dung từ khóa&nbsp;<code>if</code>.</p>

<p>Cấu trúc của câu lệnh điều kiện với&nbsp;<code>if</code>&nbsp;là</p>

<pre>
<code>if (biểu thức bool)
{
    nội dung thực hiện;
}
</code></pre>

<p>Nếu biểu thức&nbsp;<code>bool</code>&nbsp;đúng, khối lệnh tiếp theo sau&nbsp;<code>if</code>&nbsp;sẽ được thực hiện.</p>

<p>Chú ý câu lệnh&nbsp;<code>if</code>&nbsp;(biểu thức&nbsp;<code>bool</code>) không cần có dấu chấm phẩy kết thúc.</p>

<p>Nếu nội dung thực hiện chỉ gồm 1 câu lệnh, ta không bắt buộc phải sử dụng ngoặc nhọn.</p>

<p>Ví dụ thực hành: Dưới đây là một chương trình tính toán đơn giản. Bạn cần phải nhập vào hai số&nbsp;<code>a</code>&nbsp;và&nbsp;<code>b</code>, cùng với một kí tự dấu phép tính cộng, trừ, nhân, chia. Chương trình sẽ in ra kết quả của phép tính bạn nhập vào.</p>

<figure>
<pre>
<code data-lang="c++">#include &lt;iostream&gt;

using namespace std;

int main()
{
    int a, b;
    char dau;
    cin &gt;&gt; a &gt;&gt; dau &gt;&gt; b;
    if (dau == &#039;+&#039;)
        cout &lt;&lt; a + b;
    if (dau == &#039;-&#039;)
        cout &lt;&lt; a - b;
    if (dau == &#039;*&#039;)
        cout &lt;&lt; a * b;
    if (dau == &#039;/&#039;)
    {
        if (b == 0)
            cout &lt;&lt; &quot;Phep chia cho 0!&quot;;
        if (b != 0)
            cout &lt;&lt; a / b;
    }
    if (dau != &#039;+&#039; &amp;&amp; dau != &#039;-&#039; &amp;&amp; dau != &#039;*&#039; &amp;&amp; dau != &#039;/&#039;)
        cout &lt;&lt; &quot;Phep tinh khong hop le!&quot;;
    return 0;
}</code></pre>
</figure>

<p><br  />
<br  />
<br  />
<br  />
<br  />
<br  />
<br  />
<br  />
<br  />
<br  />
<br  />
<br  />
<br  />
<br  />
<br  />
<br  />
<br  />
<br  />
<br  />
<br  />
<br  />
<br  />
<br  />
<br  />
Như trong ví dụ trên, các câu lệnh&nbsp;<code>if</code>&nbsp;với phép tính cộng, trừ, nhân chỉ cần một lệnh in ra kết quả, do đó phần nội dung điều kiện không cần phải có ngoặc nhọn. Phép chia cần có thêm một lệnh kiểm tra phép tính có bị chia cho 0 hay không, do đó sử dụng nhóm lệnh ngoặc nhọn.</p>

<p>Từ ví dụ trên, ta cũng thấy rằng ta có thể lồng nhiều câu lệnh&nbsp;<code>if</code>&nbsp;vào nhau, để có được tính năng mà ta muốn, giống như khả năng phát hiện chia cho 0 trong chương trình trên.</p>

<h1 id="từ-khóa-else">Từ khóa&nbsp;<code>else</code></h1>

<p>Tiếp túc với câu chuyện về bé doge.&nbsp;<strong>Khi đói, bé doge sẽ kêu và đòi ăn. Nhưng nếu không, bé doge sẽ tiếp tục vui chơi thưởng thức cuộc sống.</strong>&nbsp;Đó là ví dụ về chức năng của từ khóa&nbsp;<code>else</code>&nbsp;- thực hiện một đoạn lệnh khi biểu thức&nbsp;<code>bool</code>&nbsp;bị sai.</p>

<p><img alt="undefined" src="https://cowboycoder.tech/img/uploads/cpp-c%C6%A1-b%E1%BA%A3n-12-2.jpg" /></p>

<p>Cấu trúc của đoạn lệnh&nbsp;<code>if</code>&nbsp;có sử dụng&nbsp;<code>else</code>&nbsp;là</p>

<pre>
<code>if (biểu thức bool)
{
    nội dung khi đúng;
}
else
{
    nội dung khi sai;
}
</code></pre>

<p>Ví dụ: Trong đoạn code dành cho phép chia của chương trình trên, ta có thể sửa lại phần kiểm tra chia cho 0 thành</p>

<figure>
<pre>
<code data-lang="c++">if (b == 0)
    cout &lt;&lt; &quot;Phep chia cho 0!&quot;;
else
    cout &lt;&lt; a / b;</code></pre>
</figure>

<h1 id="từ-khóa-switch"><br  />
<br  />
<br  />
<br  />
<br  />
Từ khóa&nbsp;<code>switch</code></h1>

<p>Nhà bạn nào nuôi doge rồi chắc cũng biết - doge có rất nhiều nhu cầu, không chỉ có mỗi việc ăn. Khi doge đói, khát, chán, thất tình,… mỗi công việc lại có một hướng xử lý khác nhau. Ta có thể sử dụng nhiều lệnh&nbsp;<code>if</code>&nbsp;để giải quyết từng trường hợp một, hoặc sử dụng từ khóa&nbsp;<code>switch</code>&nbsp;để xử lý với nhiều trường hợp khác nhau. Cấu trúc của cụm lệnh&nbsp;<code>switch</code>&nbsp;là</p>

<pre>
<code>switch (giá trị cần kiểm tra)
{
    case trường hợp 1:
        nội dung;
        break; // không bắt buộc
    case trường hợp 2:
        nội dung;
        break; // không bắt buộc
    case trường hợp 3:
        nội dung;
        break; // không bắt buộc
    ...
    default:
        nội dung; // phần default là không bắt buộc
}
</code></pre>

<ul>
	<li>
	<p>Giá trị cần kiểm tra: Giá trị này ở đây có thể là một biến, một biểu thức, vân vân… Giá trị này sẽ được so sánh với từng trường hợp một trong nhóm lệnh&nbsp;<code>switch</code>.</p>
	</li>
	<li>
	<p>Các trường hợp: Mỗi một trường hợp đều bắt đầu bằng dòng&nbsp;<code>case (giá trị):</code>. Nếu như giá trị cần kiểm tra bằng giá trị của trường hợp, phần nội dung của trường hợp này sẽ được triển khai.</p>
	</li>
	<li>
	<p><code>break</code>: Từ khóa&nbsp;<code>break</code>&nbsp;khi được sử dụng trong khối lệnh&nbsp;<code>switch</code>&nbsp;mang ý nghĩa thông báo kết thúc phần nội dung của một trường hợp. Phần này là không bắt buộc - nếu không có từ khóa này, các dòng lệnh của các trường hợp về sau sẽ được chạy tiếp (cho dù không thỏa mãn trường hợp về sau) cho tới khi nào tìm thấy một từ khóa&nbsp;<code>break</code>&nbsp;hoặc kết thúc khối lệnh&nbsp;<code>switch</code>.</p>
	</li>
	<li>
	<p><code>default</code>: Khi giá trị cần kiểm tra không thỏa mãn trường hợp nào, nội dung ở phần&nbsp;<code>default</code>&nbsp;sẽ được triển khai. Phần này là không bắt buộc.</p>
	</li>
</ul>

<p>Ví dụ: Ta có thể chỉnh sửa lại chương trình tính toán đơn giản ở trên bằng nhóm lệnh&nbsp;<code>switch</code>&nbsp;cho biến&nbsp;<code>dau</code>.</p>

<figure>
<pre>
<code data-lang="c++">#include &lt;iostream&gt;

using namespace std;

int main()
{
    int a, b;
    char dau;
    cin &gt;&gt; a &gt;&gt; dau &gt;&gt; b;
    switch (dau)
    {
        case &#039;+&#039;:
            cout &lt;&lt; a + b;
            break;
        case &#039;-&#039;:
            cout &lt;&lt; a - b;
            break;
        case &#039;*&#039;:
            cout &lt;&lt; a * b;
            break;
        case &#039;/&#039;:
            if (b == 0)
                cout &lt;&lt; &quot;Phep chia cho 0!&quot;;
            if (b != 0)
                cout &lt;&lt; a / b;
        default:
            cout &lt;&lt; &quot;Phep tinh khong hop le!&quot;;
    }
    return 0;
}</code></pre>
</figure>

<p><br  />
<br  />
<br  />
<br  />
<br  />
<br  />
<br  />
<br  />
<br  />
<br  />
<br  />
<br  />
<br  />
<br  />
<br  />
<br  />
<br  />
<br  />
<br  />
<br  />
<br  />
<br  />
<br  />
<br  />
<br  />
Trong ví dụ với&nbsp;<code>switch</code>, ta thấy điều tiện lợi nhất là việc không cần hẳn biểu thức&nbsp;<code>bool</code>&nbsp;dài dòng như ví dụ với&nbsp;<code>if</code>&nbsp;để kiểm tra giá trị của dau có khác với tất cả các giá trị cho phép hay không.</p>

<p>Tùy vào trường hợp, chúng ta sẽ sử dụng&nbsp;<code>if</code>,&nbsp;<code>else</code>&nbsp;và&nbsp;<code>switch</code>&nbsp;sao cho phù hợp với nhu cầu của chương trình.</p>

<p><em>Phần sau:&nbsp;<a href="http://tinhocdct.xyz/hoat-dong-chuyen-mon/c-co-ban-phan-13-vong-lap-107.html" target="_blank">&#91;C++ Cơ bản&#93; Phần 13: Vòng lặp</a></em></p>
		</div>
				<div id="author">
						<p>
				<strong>Tác giả bài viết:</strong>
				Thanh Sơn
			</p>
						<p>
				<strong>Nguồn tin:</strong>
				cowboycoder.tech
			</p>
		</div>
	</div>
	<div id="footer" class="clearfix">
		<div id="url">
			<strong>URL của bản tin này: </strong><a href="https://tinhocdct.xyz/hoat-dong-chuyen-mon/c-co-ban-phan-12-cau-lenh-dieu-kien-105.html" title="&#91;C++ Cơ bản&#93; Phần 12&#x3A; Câu lệnh điều kiện">https://tinhocdct.xyz/hoat-dong-chuyen-mon/c-co-ban-phan-12-cau-lenh-dieu-kien-105.html</a>

		</div>
		<div class="clear"></div>
		<div class="copyright">
			&copy; TỔ TIN HỌC TRƯỜNG THPT ĐỖ CÔNG TƯỜNG
		</div>
		<div id="contact">
			<a href="mailto:webmaster@tinhocdct.xyz">webmaster@tinhocdct.xyz</a>
		</div>
	</div>
</div>
        <div id="timeoutsess" class="chromeframe">
            Bạn đã không sử dụng Site, <a onclick="timeoutsesscancel();" href="https://tinhocdct.xyz/#">Bấm vào đây để duy trì trạng thái đăng nhập</a>. Thời gian chờ: <span id="secField"> 60 </span> giây
        </div>
        <div id="openidResult" class="nv-alert" style="display:none"></div>
        <div id="openidBt" data-result="" data-redirect=""></div>
<div id="run_cronjobs" style="visibility:hidden;display:none;"><img alt="" src="/index.php?second=cronjobs&amp;p=w7Oz3pe3" width="1" height="1" /></div>
<script src="https://tinhocdct.xyz/assets/js/jquery/jquery.min.js"></script>
<script>var nv_base_siteurl="/",nv_lang_data="vi",nv_lang_interface="vi",nv_name_variable="nv",nv_fc_variable="op",nv_lang_variable="language",nv_module_name="news",nv_func_name="savefile",nv_is_user=0, nv_my_ofs=-4,nv_my_abbr="EDT",nv_cookie_prefix="nv4",nv_check_pass_mstime=1738000,nv_area_admin=0,nv_safemode=0,theme_responsive=0,nv_is_recaptcha=0;</script>
<script src="https://tinhocdct.xyz/assets/js/language/vi.js"></script>
<script src="https://tinhocdct.xyz/assets/js/global.js"></script>
<script src="https://tinhocdct.xyz/themes/default/js/news.js"></script>
<script src="https://tinhocdct.xyz/themes/default/js/main.js"></script>
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-1816161148536198"
     crossorigin="anonymous"></script>
<script src="https://tinhocdct.xyz/themes/default/js/bootstrap.min.js"></script>
</body>
</html>