標籤:
1.if的第1種結構
if(條件)
{
語句1;
語句2;
......
}
如果if右邊小括弧()中的條件成立,也就是為“真”時,就會執行大括弧{}中的語句;
如果條件為假,就不執行大括弧{}中的語句。這裡的if是關鍵字。
C語言規定所有非0值都為“真”
2.if的第2種結構
if(條件1)
{
語句1;
語句2;
......
}
else
{
}
如果if右邊小括弧()中的條件成立,也就是為“真”時,就會執行大括弧{}中的語句,
如果條件為假,就執行else中{}裡面的語句。
3.if的第3種結構
if(條件1)
{
語句1;
語句2;
......
}
else if(條件2)
{
}
else if(條件3)
{
}
else if(條件4)
{
}
else
{
}
如果if右邊小括弧()中的條件1成立,也就是為“真”時,就會執行大括弧{}中的語句,
如果條件1不成立就判斷條件2成不成立,成立就執行不成立就繼續往下走判斷條件3,以此類推
如果如果所有的條件為假,就執行else中{}裡面的語句。
注意:這麼多大括弧中,只有1個大括弧內的代碼會被執行。
4.if的第4種結構
如果if後面大括弧{}中只有一行代碼時,可以省略大括弧。
if (條件)
語句1;
為了保證代碼的可讀性,不建議省略大括弧!!!
5.語句嵌套
if語句內部是可以嵌套其他if語句的,如下面的例子
int a = 7;
if ( a > 0 )
{
printf("a的值大於0\n");
if ( a<9 )
{
printf("a的值小於9");
}
}
6.注意
1》
千萬不要在if的小括弧後面添加分號
if ( a>8 );
2》
假設本來是想判斷a是否為0,那麼本應該寫if (a == 0),若誤寫成了if (a = 0),那將是一件非常可怕的事情,因為編譯器又不報錯,這樣的BUG就難找了。因此,像a==0這樣的運算式,最好寫成0==a,若誤寫成0=a,編譯器會直接報錯。
// 不推薦
if (a == 0) {
}
// 推薦
if (0 == a) {
}
3》
在C語言中,可以不儲存關係運算的結果。
int a = 10;
a > 10;
a == 0;
這裡又是一個陷阱,假設你的本意是想給a賦值為0,那麼本應該寫a = 0; ,若誤寫成a == 0; ,那將又是一個非常難找的BUG,因為編譯器根本不會報錯。
7.練習
1 /* 2 輸入一個整數score代表分數,根據分數輸出等級(A-E)(用兩種方式) 3 A:90~100 4 B:80~89 5 C:70~79 6 D:60~69 7 E:0~60 8 */ 9 10 #include <stdio.h>11 12 int main()13 {14 // 1.提示輸入15 printf("請輸入分數值:\n");16 17 // 2.接收輸入18 int score;19 scanf("%d", &score);20 21 // 3.判斷等級 (效能最高)22 if (score>=90 && score<=100) { // [90, 100]23 printf("A\n");24 } else if (score>=80) { // [80, 89]25 printf("B\n");26 } else if (score>=70) { // [70, 79]27 printf("C\n");28 } else if (score>=60) { // [60, 69]29 printf("D\n");30 } else { // (-∞, 59]31 printf("E\n");32 }33 34 /* 效能中等35 if (score>=90 && score<=100) { // [90, 100]36 printf("A\n");37 } else if (score>=80 && score<=89) { // [80, 89]38 printf("B\n");39 } else if (score>=70 && score<=79) { // [70, 79]40 printf("C\n");41 } else if (score>=60 && score<=69) { // [60, 69]42 printf("D\n");43 } else { // (-∞, 59]44 printf("E\n");45 }*/46 47 /* 效能最差48 if (score>=90 && score<=100) { // [90, 100]49 printf("A\n");50 }51 52 if (score>=80 && score<=89) { // [80, 89]53 printf("B\n");54 }55 56 if (score>=70 && score<=79) { // [70, 79]57 printf("C\n");58 }59 60 if (score>=60 && score<=69) { // [60, 69]61 printf("D\n");62 }63 64 if (score<=59) { // (-∞, 59]65 printf("E\n");66 }*/67 return 0;68 }
【學習筆記】【C語言】選擇結構-if