在c語言中,編譯器通常將else與上乙個(最近的)if進行匹配,除非通過花括號來制定匹配關係。看下面乙個例子:
//example 1: x = 11, y = 9
#include int main()
其輸出為
$$$$$
由於else是與最近的if響匹配,所以上述**實際上與下面的**功能一致:
//example 2: x = 11, y = 9
#include int main()
printf("$$$$$\n");
}
如若改變x和y的值,如下面所示:
//example 2: x = 9, y = 11
#include int main()
根據example 2 的分析,不難知道執行結果為:
*****
$$$$$
再接著看下面乙個例子:
//exmaple 3: x = 9, y = 11
#include int main()
else
}
與前面的例子相比,**上唯一區別就是加了兩對花括號「」,而功能上else只與第乙個if相匹配,容易看出,輸出為:
*****
交換x,y的值,x = 11,y = 9,輸出為:
#####
$$$$$
懸掛else引發的問題
cpp view plain copy include intmain 程式的本意是 若x 0,則進行判斷y是否等於0 若x!0,則輸出x 0。所以當x 0,y 1時,程式應該不輸出任何東西。但是執行結果為 x 0 導致這個問題的原因是 else始終與同一括號內最近的未匹配的if結合。要想實現程式的...
C語法陷阱 「懸掛」else引發的問題
一 懸掛 else引發的問題 導論 if與else的匹配問題雖然簡單,但是很容易由於粗心犯一些比較簡單的錯誤。1.舉個例子,想要實現乙個功能 如果a 1且b 1時列印出 a 1,b 1 如果a不等於1則列印出 a 1 則 如下 int a 1 int b 1 if a if b printf a 1...
Python語言中與else有關的
if else語句 和各種語言相同的用法,在條件語句中,與if語句搭配使用的else語句。如果if語句的條件表示式的結果布林值為假,那麼程式將執行else語句後的 它的語法是大家最為熟知的 python if expression expr true suite else expr false su...