if
和else
關鍵字對條件進行判斷。請先看下面的代碼:
#include <stdio.h> int main() { int age; printf("請輸入你的年齡:"); scanf("%d", &age); if(age>=18){ printf("恭喜,你已經成年,可以使用該軟件!\n"); }else{ printf("抱歉,你還未成年,不宜使用該軟件!\n"); } return 0; }可能的運行結果:
請輸入你的年齡:23↙
恭喜,你已經成年,可以使用該軟件!
請輸入你的年齡:16
抱歉,你還未成年,不宜使用該軟件!
age>=18
是需要判斷的條件,>=
表示“大於等於”,等價於數學中的≥
。if
後面的語句(第8行);如果條件不成立,也即 age 小於 18,那麼執行else
後面的語句(第10行)。
if(判斷條件){
語句塊1
}else{
語句塊2
}
{ }
包圍的一個或多個語句的集合。如果語句塊中只有一個語句,也可以省略{ }
,例如:
if(age>=18) printf("恭喜,你已經成年,可以使用該軟件!\n"); else printf("抱歉,你還未成年,不宜使用該軟件!\n");
#include <stdio.h> int main() { int a, b, max; printf("輸入兩個整數:"); scanf("%d %d", &a, &b); if(a>b) max=a; else max=b; printf("%d和%d的較大值是:%d\n", a, b, max); return 0; }運行結果:
if(判斷條件){
語句塊
}
#include <stdio.h> int main() { int a, b, max; printf("輸入兩個整數:"); scanf("%d %d", &a, &b); max=b; // 假設b最大 if(a>b) max=a; // 如果a>b,那麼更改max的值 printf("%d和%d的較大值是:%d\n", a, b, max); return 0; }運行結果:
if(判斷條件1){
語句塊1
} else if(判斷條件2){
語句塊2
}else if(判斷條件3){
語句塊3
}else if(判斷條件m){
語句塊m
}else{
語句塊n
}
#include <stdio.h> int main(){ char c; printf("Input a character:"); c=getchar(); if(c<32) printf("This is a control character\n"); else if(c>='0'&&c<='9') printf("This is a digit\n"); else if(c>='A'&&c<='Z') printf("This is a capital letter\n"); else if(c>='a'&&c<='z') printf("This is a small letter\n"); else printf("This is an other character\n"); return 0; }運行結果:
{ }
包圍,但要注意的是在}
之後不需要再加分號;
(當然加上也沒錯)。#include <stdio.h> int main(){ int a,b; printf("Input two numbers:"); scanf("%d %d",&a,&b); if(a!=b){ //!=表示不等於 if(a>b) printf("a>b\n"); else printf("a<b\n"); }else{ printf("a=b\n"); } return 0; }運行結果:
if(a!=b) // ① if(a>b) printf("a>b\n"); // ② else printf("a<b\n"); // ③③和②配對,而不是和①配對。