在編程中,條件判斷語(yǔ)句是控制程序流程的核心元素之一。它們使得程序能夠根據(jù)不同的輸入和狀態(tài),做出相應(yīng)的決策。特別是在C語(yǔ)言中,條件判斷語(yǔ)句的使用極為廣泛,涵蓋了從簡(jiǎn)單的if語(yǔ)句到更復(fù)雜的switch語(yǔ)句和條件運(yùn)算符。這些結(jié)構(gòu)不僅增強(qiáng)了代碼的靈活性,還提高了程序的可讀性和可維護(hù)性。本文將深入探討C語(yǔ)言中的主要條件判斷語(yǔ)句,包括它們的語(yǔ)法、使用方法及實(shí)際應(yīng)用,通過(guò)具體示例幫助讀者更好地理解和掌握這些重要概念。
01#
一:什么是條件判斷語(yǔ)句
判斷結(jié)構(gòu)要求指定一個(gè)或多個(gè)要評(píng)估或測(cè)試的條件,以及條件為真時(shí)要執(zhí)行的語(yǔ)句(必需的)和條件為假時(shí)要執(zhí)行的語(yǔ)句(可選的)。
C 語(yǔ)言把任何非零和非空的值假定為true,把零或null假定為 false。
以下是C語(yǔ)言的三種條件判斷語(yǔ)句:
02#
二:if語(yǔ)句
(1):if語(yǔ)句
一個(gè) if 語(yǔ)句 由一個(gè)布爾表達(dá)式后跟一個(gè)或多個(gè)語(yǔ)句組成。
如果布爾表達(dá)式為 true ,則 if 語(yǔ)句內(nèi)的代碼塊將被執(zhí)行。如果布爾表達(dá)式為 false ,則 if 語(yǔ)句結(jié)束后的第一組代碼(閉括號(hào)后)將被執(zhí)行
編寫一個(gè)簡(jiǎn)單的程序:
運(yùn)行結(jié)果為:
(2):if...else 語(yǔ)句
一個(gè) if 語(yǔ)句 后可跟一個(gè)可選的 else 語(yǔ)句,else 語(yǔ)句在布爾表達(dá)式為 false 時(shí)執(zhí)行。
如果布爾表達(dá)式為 true,則執(zhí)行 if 塊內(nèi)的代碼。如果布爾表達(dá)式為 false,則執(zhí)行 else 塊內(nèi)的代碼。
編寫一個(gè)簡(jiǎn)單的程序:
運(yùn)行結(jié)果為:
(3)if...else if...else語(yǔ)句
一個(gè) if 語(yǔ)句后可跟一個(gè)可選的 else if...else 語(yǔ)句,這可用于測(cè)試多種條件。
當(dāng)使用 if...else if...else 語(yǔ)句時(shí),以下幾點(diǎn)需要注意:
l 一個(gè) if 后可跟零個(gè)或一個(gè) else,else 必須在所有 else if 之后。
l 一個(gè) if 后可跟零個(gè)或多個(gè) else if,else if 必須在 else 之前。
l 一旦某個(gè) else if 匹配成功,其他的 else if 或 else 將不會(huì)被執(zhí)行。
編寫一個(gè)簡(jiǎn)單的程序:
運(yùn)行結(jié)果為:
(4)嵌套 if...else語(yǔ)句
在 C 語(yǔ)言中,嵌套 if...else 語(yǔ)句是合法的,可以在一個(gè) if 或 else if 語(yǔ)句內(nèi)使用另一個(gè) if 或 else if 語(yǔ)句。
編寫一個(gè)簡(jiǎn)單的程序:
運(yùn)行結(jié)果為:
03#
三:switch語(yǔ)句
(1):switch語(yǔ)句
switch 語(yǔ)句是一種有限制的控制流語(yǔ)句,它用于根據(jù)表達(dá)式的值執(zhí)行不同的代碼塊。
一個(gè) switch 語(yǔ)句允許測(cè)試一個(gè)變量等于多個(gè)值時(shí)的情況,每個(gè)值稱為一個(gè) case,且被測(cè)試的變量會(huì)對(duì)每個(gè) switch case 進(jìn)行檢查。
編寫一個(gè)簡(jiǎn)單的程序:
運(yùn)行結(jié)果為:
l switch 后面的表達(dá)式的值將會(huì)與每個(gè) case 后面的常量值進(jìn)行比較,直到找到匹配的值或者執(zhí)行到 default(如果存在)。
l 如果找到匹配的值,將執(zhí)行相應(yīng) case 后面的代碼塊,然后跳出 switch 語(yǔ)句。
l 如果沒(méi)有匹配的值,并且有 default,則執(zhí)行 default 后面的代碼塊。
l 如果沒(méi)有匹配的值,并且沒(méi)有 default,則跳過(guò)整個(gè) switch 語(yǔ)句直到結(jié)束。
(2):嵌套switch語(yǔ)句
可以在一個(gè) switch 語(yǔ)句內(nèi)使用另一個(gè) switch 語(yǔ)句。
編寫一個(gè)簡(jiǎn)單的程序:
運(yùn)行結(jié)果為:
推導(dǎo)一下流程:
l 第6行:開(kāi)始時(shí)n=1,匹配下方case1
l 第8行:m自增1,此時(shí)m=3
l 第9行:由于沒(méi)有break,繼續(xù)執(zhí)行n自增1,此時(shí)n=2
l 第10行:由于沒(méi)有break,繼續(xù)執(zhí)行case3
l 第11行:此時(shí)匹配n=2
l 第14行:m自增1,n自增1,此時(shí)m=4 , n=3
l 第15行:由于存在break,退出該switch語(yǔ)句
l 第19行:m自增1,此時(shí)m=5
l 第20行:由于存在break,退出該switch語(yǔ)句
l 最終結(jié)果:m=5 , n=3
04#
四:條件運(yùn)算符
我們?cè)谶\(yùn)算符部分提到了條件運(yùn)算符 ? :,它是C語(yǔ)言唯一一個(gè)三目運(yùn)算符,可以用來(lái)替代 if...else 語(yǔ)句。
其中,condition 、block1 和 block2 是表達(dá)式。
如果 condition 為真,則計(jì)算 block1 的值,結(jié)果即為整個(gè)表達(dá)式的值。如果 condition 為假,則計(jì)算 block2 的值,結(jié)果即為整個(gè)表達(dá)式的值。
編寫一個(gè)簡(jiǎn)單的程序:
運(yùn)行結(jié)果為:
關(guān)于更多嵌入式學(xué)習(xí)資料
將持續(xù)更新中
敬請(qǐng)期待
-
C語(yǔ)言
+關(guān)注
關(guān)注
180文章
7605瀏覽量
136930 -
運(yùn)算符
+關(guān)注
關(guān)注
0文章
172瀏覽量
11087
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論