悬挂“else”
else匹配規則:與它上面的距離它最近的且在同一級語句塊的一個未與else匹配的if語句匹配
初接觸C語言的同志可能會犯下面這種錯誤
本意是想把else與第一個if語句匹配,但是因為第二個if語句也沒有與之匹配的else語句,所以這個else會被編譯器“判給”第二格if語句
解決這種錯誤的方式也很簡單,每當寫一個if()語句塊時,都在后面跟一對大括號,把if()語句塊的內容寫在大括號里面,還有就是當if()語句塊的邏輯寫完了之后,立馬在后面跟一個else()語句塊,即使else()什么操作也不需要做,僅僅是一個空語句。
#include<stdio.h>int main() {int a = 10;int b = 0;if (a != 0){printf("a != 0\n");if (b != 0){printf("b != 0\n");}}else{printf("a = 0\n");}system("pause");return 0; }上面的例子中把第二個if()語句塊封裝在第一個if()語句塊內,那么因為僅有的一個else()語句塊與第一個if()語句塊在同一個語句塊(大括號里),所以他倆會匹配成功,因此,即使b = 0,第二個if()語句塊的條件不滿足,也不會執行else()語句塊的語句。
總結
- 上一篇: 浅谈C语言字节对齐
- 下一篇: gifcam使用缩小内存_Fedora