C語言中if條件語句
形式一:If(條件) 如果成立則執行這一步;
形式二:If(條件) 如果成立則執行這一步;else 否則執行這一步;
形式三:if語句的巢狀
1.if一直巢狀的形式:
if(表示式1)
if(表示式2)
語句1;
else
語句2;
其中的else究竟是與哪一個if配對呢?else與第二個if配對。C語言規定,如果沒有花括號else 總是與它前面最近的if配對,因此對上述例子應按後一種情況理解。所以我建議不管你是單行表示式還是多行表示式都用花括號把你的表示式括起來即:{表示式}
注意:一般程式碼都是自上而下按順序執行的。其次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.(注:複合語句要用花括號括起來別忘了哦!)
如果你不加花括號就會提示:
需要注意的是:在if關鍵字之後均為表示式。 該表示式通常是邏輯表示式或關係表示式,但也可以是其它表示式,如
例如:
if(a=5) 語句;
if(b) 語句;
但是這種賦值表示式形式的條件語句的語義是:表示式的值永遠為真,因為你在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是相等的”這句話。.
當你修改了一段程式碼,記得重新編譯,不然沒有效果.