------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
程序的结构有三种:顺序结构(最简单的),分支结构,循环结构。这次对分支结构使用过程需要注意的和使用条件做了一些总结回顾。
1、if条件判断
格式:if(条件){满足条件的语句}
括号内的条件可以是表达式,变量,数值,有返回值的函数。
语义为:如果if条件的值为真时,则执行其后的语句,否则不执行该语句。跳过该判断语句,执行下面的语句。语句可以是单条语句,也可以是用花括号{}包括起来的复合语句。
简单判断成绩60分以上为合格,60分以下为不合格:
int main(int argc,const char *argv[])
{
//定义成绩的变量
int a;
//接收并输出成绩
printf("请输入成绩:\n");
scanf("%d", &a);
//大于60分为合格,不足则不及格
if (a>=60)
{
printf("恭喜你成绩合格,你的成绩是%d\n",a);
}
printf("很遗憾你成绩不合格,你的成绩是%d\n", a);
return 0;
}
2、if……else条件判断
格式:if(条件)
{
执行语句;
}
else
{
执行语句;
}
语义为:当if条件的值为真时,则执行其后的语句,否则直接执行else后面的语句。
简单判断成绩60分以上为合格,60分以下为不合格:
int main(int argc,const char *argv[])
{
//定义成绩的变量
int a;
//接收并输出成绩
printf("请输入成绩:\n");
scanf("%d", &a);
//大于60分为合格,不足则不及格
if (a>=60)
{
printf("恭喜你成绩合格,你的成绩是%d\n",a);
}
else
{
printf("很遗憾你成绩不合格,你的成绩是%d\n", a);
}
return 0;
}
格式:if(条件1)
{
执行语句;
}
else if(条件2)
{
执行语句;
}
……
{
执行语句;
}
else
{
执行语句;
}
语义为:依次判断表达式的值,当出现某个值为真时,则执行其对应的语句。然后跳到整个if语句之外继续执行程序。 如果所有的表达式均为假,则执行语句n。然后继续执行后续程序。
实例:输入一个成绩,判断成绩所在的等级,并打印输出。90-100为A,80-90为B,70-80为C,60-70为D,60分以下为E。
int main(int argc,const char *argv[])
{
//定义成绩的变量
int a;
//接收并输出成绩
printf("请输入成绩:\n");
scanf("%d", &a);
//判断成绩所在的区间并打印输出
//先判断成绩在合法区间内
if (a<0 || a>100)
{
printf("你输入成绩不合法\n", a);
}
else if(a >= 90)
{
printf("A\n");
}
else if (a>=80)
{
printf("B\n");
}
else if (a >= 70)
{
printf("C\n");
}
else if (a >= 60)
{
printf("D\n");
}
else
{
printf("E\n");
}
return 0;
}
例:int main()
{
int x=10, y=20, t=0;
if (x==y) t=x; x=y; y=t;
printf("%d,%d\n",x,y);
return 0;
}
if条件成立为真时,所执行的语句只是 t=x;因为没有大括号,作用域只是管一个分号,执行完第一个分号则结束了判断。x=y; y=t;是不受if条件控制的。当if (x==y) {t=x; x=y; y=t;}又是不一样的,if条件为真时,大括号内的三个语句都执行,为假时都不执行。
4、switch语句
格式:switch(表达式){
case 常量表达式1:语句1;
case 常量表达式2:语句2;
……
default :语句n+1;
}
实例:输入一个成绩,判断成绩所在的等级,并打印输出。90-100为A,80-90为B,70-80为C,60-70为D,60分以下为E。
int main(int argc,const char *argv[])
{
//定义成绩的变量
int a;
//接收并输出成绩
printf("请输入成绩0-100之间的数字:\n");
scanf("%d", &a);
//判断成绩所在的区间并打印输出
//通过商判断所在的区间
switch (a / 10)
{
case 9:printf("A"); break;
case 8:printf("B"); break;
case 7:printf("C"); break;
case 6:printf("D"); break;
default:printf("E");
break;
}
return 0;
}
声明需要注意的地方:
switch()表达式的类型与case后面的值必须是整型或可以转换为整型的值,具体如下:
1.switch的值可以是常量,如switch(19);
2.switch的值可以是常量表达式,如switch(19+2);
3.switch的值可以是变量,如switch(a);
4.switch的值可以是返回值是整型表达式,如switch(a=5+5);
case需要注意的地方:
1.case的值可以是常量,如case(19);
2.case的值可以是常量表达式,如case(19+2);
3.default语句位置可以随便放;4.case的穿透同样可以适用于default;
5.如果default语句放到switch语句最后,可以不加break,若是不放到最后,是必须要加上break的;
6.case后面不能是实数型,如case 10.2;
7.case语句之后默认的第一句话不能定义变量,如果要定义的话需要加上大括号。如:case 1:int s=10;printf(“%d”,s);这样是错误的,改正:case 1:{int s=10;printf(“%d”,s);}
思考:if语句与switch语句都是判断条件的,那该怎样选择使用呢?
1.当分支较多的时候需要进行大量列举的时候用if;
2.分支量不是太多,且用if代码量较多的时候可以用switch。
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------