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"); // ③
③和②配對,而不是和①配對。