分段函数
#include<stdio.h>
int main()
{
int f;
if(x<0){
f=-1;
}else if(x==0){
f=0;
}else{
f=2*x;
}
单一出口
级联的if-else if
if(exp1)
st2;
else if(exp 2)
st 2;
else
st3;
3.3.4
#include <stdio.h>
int main()
{
if(type==1)
printf("您好");
else if(type==2)
printf("早上好");
else if(type==3)
printf("晚上好");
else if(type==4)
printf("再见");
else
printf("啊,什么啊?");
return 0;
}
如果输入type==3,那么计算机会一步一步从type=1开始判断一直判断到3正确才会输出。
上面例子改成switch-case
#include <stdio.h>
int main()
{ int type;
scanf("%d",&type);
switch(type){
case 1:
printf("您好");
break;
case 2;
printf("早上好");
break;
case 3;
printf("晚上好");
break;
case 4;
printf("再见");
break;
default:
printf("啊,什么啊?");
return 0;
}
而switch,输入type的值他会直接选择合适的case下面的printf在进入相应的break带出到最后return=0进行输出,不用一步一步判断。
switch-case的长相
#include <stdio.h>
int main()
{
int (控制表达式);
printf("%d",&控制表达式);
switch(控制表达式)//控制表达式只能是整数型的结果
{
case 常量: //常量可以是常数,也可以是常数计算的表达式
语句 //printf("....")
.....
//break;
case 常量:
语句
.....
//break;
default: //当输入的数字没有相应case符合时输出
语句
......
}
case不是划分句子的语句是一个入口,是break来划分是个出口。
成绩分类
#include <stdio.h>
int main()
{
int grade=0;
printf("请输入您的成绩:");
scanf("%d",&grade);
grade/=10;
switch(grade){
case 10:
case 9:
printf("A\n");
break;
case 8;
printf("B\n");
break;
case 7;
printf("C\n");
break;
case 6;
printf("D\n");
break;
default:
print("F\n");
break;
return 0;
}