有兩種條件語句
if
語句的語法形式是
if
(condition)
statement;
if else
語句的形式是
if
(condition)
statement1;
else
statement2;
使用 if else 語句
// 如果 grade 的結果小於 60,對應的字母是 f;否則計算其下標
const vector socres =
;string lettergrade;
if(grade <60)
lettergrade = socres[0]
;else
lettergrade = socres[
(grade -50)
/10];
巢狀 if 語句
if
(grade <60)
lettergrade = socres[0]
;else
注意使用花括號
懸垂 else(dangling else)
確定某個給定的else
是和哪個版本if
匹配?
使用花括號控制執行路徑
提供了一條便利的途徑使得我們能夠在若干固定選項中做出選擇。
// 統計母音字母出現的次數
unsigned acnt =
0, ecnt =
0, icnt =
0, ocnt =
0; ucnt =0;
char ch;
while
(cin >> ch)
}
switch
語句首先對括號裡的表示式求值,表示式的值轉換成整數型別,然後與每個case
標籤的值比較,如果表示式和某個case
標籤的值匹配成功,程式從該標籤之後的第一條語句開始執行,直到到達switch
的結尾或者是遇到一條break
語句為止。
case
關鍵字和它對應的值一起被稱為case
標籤。case
標籤必須是整型常量表示式。
switch 內部的控制流
如果某個case
標籤匹配成功,將從該標籤開始往後順序執行所有case
分支,除非程式顯式地中斷了這一過程,否則直到switch
的結尾處才會停下來。
unsigned wowelcnt =0;
switch
(ch)
漏寫 break 容易引發缺陷
default 標籤
如果沒有任何乙個case
標籤能匹配上switch
表示式的值,程式將執行緊跟在default
標籤後面的語句。
即使不準備在default
標籤下做任何工作,也要定義乙個default
標籤。
switch 內部的變數定義
如果在某處乙個帶有初值的變數位於作用於之外,在另一處該變數位與作用域之內,則從遷移處跳轉到後一處的行為是非法行為。
如果需要為某個case
分支定義並初始化乙個變數,應該把變數定義在塊內,從而確保後面的所有case
標籤都在變數的作用於之外。
case
true
:break
;case
false:if
(file_name.
empty()
)// 錯誤:file_name 不在作用域之外
break
;
第五章 條件語句
使用條件語句能完成一些判斷工作,使程式的走向改變。因此條件語句也叫做分支語句。條件語句有if else和switch兩種。if else的格式為 if 條件表示式 else 其中 條件表示式 返回乙個布林值,當其值為真時執行if後的語句,否則執行else後的語句。如 if yourage 18 sy...
第五章 語句
由於c primer第五版採用的c 11新標準,手頭沒有支援c 11的編譯器,推薦大家用ideone,支援c 14並且可以輸入輸出。從今天開始整理自己做的課後習題,網上答案很多,但自己寫的也是一種不一樣的思路。exercise 5.20 include include using namespace...
《C Primer》第五章 語句
身為c 的零基礎初學者,短期內把 c primer 啃下來是乙個比較笨但是有效的方法,一方面可以掌握比較規範的c 語法 避免被專案中亂七八糟的風格帶跑偏 另一方面又可以全面地了解c 語法以及c 11新標準 後續要做的事情就剩下查漏補缺,不斷完善自己的知識體系 個人感覺從零學習一門新知識比較好的方法是...