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);