C語言入門筆記 第四講 分支語句

2021-10-14 23:16:09 字數 3572 閱讀 1402

單分支型:

情況一

語法結構:

if(表示式)

語句;

如果表示式為真,執行語句;

如果表示式為假,什麼都不執行。

情況二

if(表示式)

語句1;

else

語句2;

如果表示式為真,執行語句1;

如果表示式為假,執行語句2。

多分支型:

//多分支    

if(表示式1)

語句1;

else if(表示式2)

語句2;

else

語句3;

如果表示式1為真,執行語句1;

如果表示式1為假,轉而看表示式2,如果表示式2為真,執行語句2;

如果表示式1和2都為假,那麼執行語句3。

語句1,2,3只能被執行乙個。

例子**:

#include //**1

int main()

}//**2

#include int main()

else

}//**3

#include int main()

else if(age>=18 && age<30)

else if(age>=30 && age<50)

else if(age>=50 && age<80)

else

}

多條語句

如果條件成立,要執行多條語句,應該用大括號括起來。

#include int main()

else

return 0;

}

這裡的一對就是乙個**塊。

懸空else

#include int main()

照理說,會列印出:haha

然而,什麼都沒列印出。

這是因為,即使你的縮排讓讀者看清楚了,但編譯器並不知道。

else會自動和最近的 未匹配的if匹配在一起。

本例中,else和if(b==2)匹配了,又因為a不等於1,所以根本不會有下面語句的執行。

//適當的使用{}可以使**的邏輯更加清楚。

//**風格很重要

改正:

#include int main()

}else

return 0;

}

四種**風格對比:

//**1

if (condition)

return y;

//**2

if(condition)

else

//**3

int num = 1;

if(num == 5)

//**4

int num = 1;

if(5 == num)

**1和2同樣表達乙個意思,條件成立返回x,否則返回y。

**3和4同樣表達乙個意思,如果num的值是5,則列印hehe。

**4為了防止把==寫成=,以防出現隱性bug。

**2和**4的風格更好,邏輯更清晰,不容易出錯。

switch語句也是一種分支語句。 常常用於多分支的情況。

switch(整型表示式)

語句項:

case 整型常量表示式:

語句;

case 後面只能說int的常量,不能是別的型別。

舉例:

#include int main()

return 0;

}

如果沒有break語句,則case只決定從**進去。

比如:int day = 3;

則會執行case:3到case:7的語句。

break用於跳出語句。

有時候我們的需求變了:

1. 輸入1-5輸出的是「weekday」;

2. 輸入6-7輸出「weekend」

所以**實現如下:

#include //switch**演示

int main()

return 0;

}

這個語句的意思是:

假如day = 1,

執行了case 1

但是case 1 後面並沒有東西

所以往下執行,直到執行到了case 5,列印出weekday,並且看到了break,

這時候再跳出。

並不是case 1中也寫了printf("weekday\n");的意思。

case 後面並不一定要加入break。

break語句的實際效果是把語句列表劃分為不同的部分。

程式設計好習慣

在最後乙個 case 語句的後面加上一條 break語句。

(之所以這麼寫是可以避免出現在以前的最 後乙個 case 語句後面忘了新增 break語句)。

default子句

如果表達的值與所有的case標籤的值都不匹配怎麼辦?

其實也沒什麼,結構就是所有的語句都被跳過而已。

程式並不會終止,也不會報錯,因為這種情況在c中並不認為適合錯誤。

但是,如果你並不想忽略不匹配所有標籤的表示式的值時該怎麼辦呢?

你可以在語句列表中增加一條default子句,把下面的標籤

default:

寫在任何乙個case標籤可以出現的位置。

當 switch表示式的值並不匹配所有case標籤的值時,這個default子句後面的語句就會執行。

比如:

default:

printf("輸入錯誤");

break;

所以,每個switch語句中只能出現一條default子句。

但是它可以出現在語句列表的任何位置,而且語句流會像貫穿乙個case標籤一樣貫穿default子句。

程式設計好習慣

在每個 switch 語句中都放一條default子句是個好習慣,甚至可以在後邊再加乙個 break。

switch允許巢狀使用。

零基礎入門學習Python學習筆記第四講 列表

列表 member 蘋果 香蕉 士多啤梨 鴨梨 member 蘋果 香蕉 士多啤梨 鴨梨 num 1,2,3,4 num 1,2,3,4 mix 蘋果 true,1,2,4 混合列表 mix 蘋果 true,1,2,4 mix 空列表 mix member 蘋果 香蕉 士多啤梨 鴨梨 哈密瓜 tra...

MYSQL學習筆記 第四講 列屬性

第四講 列屬性 1.是否為空 規定乙個欄位的值,是否可以是null null not null 2.預設屬性值 通過default value來說明 預設值,在沒有為該字段設定值時啟用,而且預設值的使用需要使用固定值 常見的是 乙個字段不能為空,而且存在預設值 3.主鍵 pk primary key...

python入門第四講 比較運算子

比較運算子包括 建立乙個檔名為num.py的文件 1 print 請輸入三個數字 2 num1 int input num1 3 num2 int input num2 4 num3 int input num3 5 max num 0 6if num1 num2 若num1 num2 7 max ...