1、一般形式 if(表達式)表達式1 else 表達式2 :表達式成立(為真)則執行表達式1,否則執行表達式2.
適用范圍:真假,對錯,開關,對立面的條件
注意:如果if語句中只包括一條語句,可以省略{}但最好不要省略,如果有多條語句,一定要加{}
如果else不包含任何語句,則可以省略掉else
2、分支 if(表達式1){語句1}else if(表達式){語句2} else if(表達式3){語句3}。。。。。else(語句4)
表達式1成立立即執行語句1,否則判斷表達式2,表達式2成立則立即執行語句2,否則判斷表達式3,表達式3成立則立即執行語句3,表達式1,表達式2,表達式3都不成立,則執行語句4
分支if語句中條件是互斥的,不能有重復或互相包含的情況。如果有,必須重新理清程序思路。
if的條件是一段連續的范圍,要把所有的情況都涵蓋完
適用范圍:條件互斥,沒有相重合的條件,且條件都是一段連續的范圍的時候用
3、嵌套形式:
if (表達式) {
if(表達式1)
{
語句1 //表達式和表達式1同時成立
}else{
語句2 //表達式成立且表達式1不成立
}
}else{
if (表達式2) {
語句3 //表達式不成立且表達式2成立
}else{
語句4 //表達式不成立且表達式2不成立
}
}
使用范圍:適合逐層遞進,從大到小細分條件,可用嵌套
三目運算符 表達式?語句1:語句2 等價於if(表達式)語句1 else 語句2;
1、使用if分支選擇性輸出兩個數中最大的數字:
int a=2; int b=3; if(a>b) { printf("2"); } else { printf("3"); }
2、使用if語句判斷一個從鍵盤輸入的數字是奇數還是偶數
int a=0;//定義變量時最好對變量進行初始化。 printf("請輸入一個數字:"); scanf("%d",&a); if(a%2==0)//對a除以2的余數進行判斷,如果余數為0,則說明a為偶數,否則a為奇數。 { printf("%d是一個偶數\n",a); } else { printf("%d是一個奇數\n",a); }
3、數學中分段函數的C語言模型:如果x為0,則y的值為1000,如果x不為0,y的值為x分之1,
float y=0; //定義變量 int x=0; printf("請輸入x:"); //輸入 scanf("%d",&x); if(x!=0) //判斷 { y=(float)1/x; //對運算結果要強制轉換為float型。 } else { y=1000; }
4、輸入三個數,找出最大的並輸出:
int a=0; int b=0; int c=0; int temp=0; printf("請輸入三個數:\n"); scanf("%d%d%d",&a,&b,&c); if(a>b) { temp=a; } else { temp=b; } if (temp>c) { printf("max=%d\n",temp); } else { printf("max=%d\n",c); }
5、三個數求最大值的第二種算法:先假設第一個數最大,然后和第二個數比較,得到最大的,最后與第三個數比較:
int a=0; int b=0; int c=0; int max=0; printf("請輸入三個數:\n"); scanf("%d%d%d",&a,&b,&c); max=a;//選擇法找出三個數的最大值 if (max<b) { max=b; } if (max<c) { max=c; } printf("最大數是%d",max);
6、判斷一個兩位數個位是奇數且十位是偶數:首先判斷這個數時兩位數,再對后續條件進行判斷
int a=0; printf("輸入一個數:"); scanf("%d",&a); if (a>9&&a<100&&a%2==1&&a/10%2==0) { printf("a是兩位數,且個位是奇數,十位是偶數\n"); } else printf("a不符合條件\n");
7、判斷一個輸入的數字是否是整數:
float a; scanf("%f",&a); printf("輸入的數字是%f",a); if (a-(int)a==0) { printf("a是整數"); } else { printf("a不是整數"); }
8、使用冒泡排序對四個數進行排序(不使用for循環)假設第一個數是最小的,然后與后續的數字逐一比較並移動到最后一個數字的位置,然后再使用第一個數字和最后一個數字之前的數字進行比較,得到第二小的數,並放在倒數第二的位置,重復循環直到得出最大的放在第一個的位置。
int a=0; int b=0; int c=0; int d=0; int tmp=0; printf("請輸入四個數字:"); scanf("%d%d%d%d",&a,&b,&c,&d); if (a<b) { tmp=b; b=a; a=tmp; } if (b<c) { tmp=c; c=b; b=tmp; } if (c<d) { tmp=d; d=c; c=tmp; } if (a<b) { tmp=b; b=a; a=tmp; } if (b<c) { tmp=c; c=b; b=tmp; } if (a<b) { tmp=b; b=a; a=tmp; } printf("從大到小是%d,%d,%d,%d\n",a,b,c,d);
9、根據商品價格打折條件對應付款進行計算:如果三種商品的價格中有一個超過50或者三個商品價格之和超高100,則對總價格打折扣85%。
float aprice,bprice,cprice; float sumprice; printf("請輸入三種商品價格:"); scanf("%f%f%f",&aprice,&bprice,&cprice); if (aprice>50||bprice>50||cprice>50||aprice+bprice+cprice>100) { sumprice=(aprice+bprice+cprice)*(1-0.15); } else sumprice=aprice+bprice+cprice; printf("應付錢數為%.1f\n",sumprice);
10、使用分支if語句確定三個數中最大的數:
int a,b,c,m; scanf("%d%d%d",&a,&b,&c); if (a>=b&&a>=c) { m=a; } else if (b>=a&&b>=c){ m=b; } else m=c; printf("最大值為%d\n",m);
11、使用嵌套if語句找出三個數中最大的數
int a,b,c,m; scanf("%d%d%d",&a,&b,&c); if (a>b) { if (c>a) m=c; else m=a; }else{ if(c>b) m=c; else m=b; } printf("最大的是:%d\n",m);
12、使用三目運算符求三個數中最大的數,方法一:
int a,b,c,m; scanf("%d%d%d",&a,&b,&c); m=(((a>b)?a:b)>c?((a>b)?a:b):c); printf("最大值是%d\n",m);
13、使用三目運算符求三個數中最大的數,方法二:
int a,b,c,m; scanf("%d%d%d", &a, &b, &c); m = a; m = m > b ? m : b; m = m > c ? m : c; printf("最大值是%d\n",m);
14、使用三目運算符求三個數中最大的數,方法三:
int a,b,c,m; scanf("%d%d%d", &a, &b, &c); m = (a>=b && a>=c) ? a : (b>=a && b>=c ? b : c); printf("最大值是%d\n",m);
15、使用三目運算符求三個數中最大的數,方法四
int a,b,c,m; scanf("%d%d%d", &a, &b, &c); m = a>=b ? (a>=c ? a : c) : (b>=c ? b : c); printf("最大值是%d\n",m);