if
格式:if (條件)語句;
- 條件可以是任何表達式,變量,常量
- 判斷條件的真假,真則執行后面的一個分句,假不執行后面的一個分句
- 若想控制多行語句,用大括號括起來
流程圖
如if條件為真執行b++,假則跳過控制下的一行分句。輸出結果a為0是因為在if條件里a被賦值0
eg1:
比較兩個數的大小,若a>b,則a、b互換,並且輸出,否則a、b原始值輸出,用單分支選擇結構完成
//a=2,b=3讓ab的值互換
看起來沒有達到我們想要的效果。程序表達的是順序執行的動作,而不是關系,這里的a=b,b=a是依次執行的,結果使得a和b都得到b原來的值
我們需要一個新的變量
else
else子句不能作為語句單獨使用,它必須是if語句的一部分,與if配對使用
格式:if(條件)語句1;
else語句2;
流程圖
判斷條件的真假,為真執行語句1,為假執行else的語句2。else也只控制后面的一個分句,若想控制多個分句,加上大括號。
若看不懂為什么等於6,那么看一下ab的值是什么
自增自減本身具有賦值過程
if else嵌套
流程圖
嵌套的if
第一種:
if(條件1)
if(條件2)
if(條件3)
...
第二種
if(條件1)
if(條件2)
...
else ...
第三種
if(條件1)
if(條件2)
else...
else...
看一下二、三種
//先判斷第一個if,為假則跳過整個判斷,進入輸出語句。
//還是上面那個例子,若你想讓第一個if做判斷之后結果為假執行else語句,那么把第一個if和else用縮進做對齊格式,看看這么寫對不對
//出錯了,沒有得要想要的結果。在C語言里,縮進格式不能暗示else的匹配。C是有類型的語言,強調類型,對類型檢查嚴格,不像python,js等不看重類型。
應該這樣寫
//用大括號括起來,else總是與其上面最近的未配對的if配對。
//如果if和else的數目不一樣,根據要實現的功能,加大括號來確定配對關系
eg2:試着算算x的值為多少?
下面是上面的正規格式代碼
//這個就能一眼能看懂層次關系 x的值為2
//外層控制內層(向下一級縮進的),外層不成立時,內層不用做。
級聯的if-else if
if(expression1)
statement1;
else if(expression2)
statement2;
else
statement3;
eg3:
輸入判斷一個學生的成績,大於90(包括)是優秀,大於80(包括)是良好,大於60(包括)是及格,小於60是不及格,用if和else實現
注意事項
- 錯誤使用條件里的 = 和 ==
- 養成在if和else后加上大括號的習慣,控制多條語句要括起來。
- if(條件);分號是結束,注意這里該不該寫分號 。
- if語句后的條件(表達式)也是真和假的關系,0為假,非零為真。