形式一:If(條件) 如果成立則執行這一步;
形式二:If(條件) 如果成立則執行這一步;else 否則執行這一步;
形式三:if語句的嵌套
1.if一直嵌套的形式:
if(表達式1)
if(表達式2)
語句1;
else
語句2;
其中的else究竟是與哪一個if配對呢?else與第二個if配對。C語言規定,如果沒有花括號else 總是與它前面最近的if配對,因此對上述例子應按后一種情況理解。所以我建議不管你是單行表達式還是多行表達式都用花括號把你的表達式括起來即:{表達式}
注意:一般代碼都是自上而下按順序運行的。其次if語句默認關聯控制下一個語句,所以說,如果只需要控制一個語句的話,花括號可以省略。如果你要控制多個語句,則需要用花括號{},作為一個語句塊,也就相當於一個語句。花括號的作用是防止后面else找不到對應匹配的if,只要你能保證else能找到你想對應的if,就可以自己酌情添加。
2.else if的形式:
if(表達式1)語句1;
else if(表達式2)語句2;
else if(表達式3)語句3;
else 語句4;
表達的意思為:如果不滿足表達式1的情況下,判斷滿不滿足表達式2,如果不滿足表達式2的情況下,判斷滿不滿足表達式3,如果也不滿足表達式3(i.e以上都不滿足)則執行語句4.(注:復合語句要用花括號括起來別忘了哦!)
如果你不加花括號就會提示:
又例:
f內循環這個for畫綠線的這里可以不用花括號括起來,是因為for控制if整個語句,else那部分你不要以為就是第二個語句了,第8行和第9行是一個語句塊,相當於一個語句。
需要注意的是:在if關鍵字之后均為表達式。 該表達式通常是邏輯表達式或關系表達式,但也可以是其它表達式,如賦值表達式等,甚至也可以是一個變量。
例如:
if(a=5) 語句;
if(b) 語句;
但是這種賦值表達式形式或者沒有在C語言中沒有意義的條件語句的語義:表達式的值永遠為真,因為你在if后面表達式設置的不是條件表達式。就是說它不會執行else的語句。重點,賦值表達式!!賦值表達式!!賦值表達式!!別和關系表達式中的關系運算符(<,>,<=,>=,==)中的==搞混了。
e.g:
# include <stdio.h>
# include <math.h>
int main()
{
int a, b;
printf("請輸入兩個整數,將進行是否相等的判別\n");
scanf("%d,%d", &a, &b);
if (a=b) {
printf("a 和b是相等的");
} else {
printf("a和b不相等");
}
return 0;
}
這段源程序輸出來結果永遠都是:“a 和b是相等的”這句話。.
e.g:if(0<=a<100)printf("b=8"); 0<=a<100在C語言中沒有實際意義,邏輯永遠是真。
e.g:if(a>b>c)這個關系條件表達式也是沒問題的,因為運算符同等級,從左至右依次比較。
當你修改了一段代碼,記得重新編譯,不然沒有效果.