第五章 語句 5 3 條件語句

2021-10-19 17:27:52 字數 2188 閱讀 7172

有兩種條件語句

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新標準 後續要做的事情就剩下查漏補缺,不斷完善自己的知識體系 個人感覺從零學習一門新知識比較好的方法是...