C语言----多路分支(进阶篇十九)
if多路分支
格式:
if(表达式)
{
若干语句
…
}
else if(表达式)
{
若干语句
…
}
else if(表达式)
{
若干语句
…
}
else
{
若干语句
…
}
程序1
学校将考试成绩分为3档,0-59分为不及格,60-89分为及格,90-100分为优秀。现在请编一程序,由老师输入一个学生成绩,计算机判断这个成绩在哪一档,并在屏幕上显示。
// 19-1成绩条件输出.c /*学校将考试成绩分为3档, 0 - 59分为不及格,60 - 89分为及格, 90 - 100分为优秀。现在请编一程序, 由老师输入一个学生成绩,计算机判断这个成绩在哪一档,并在屏幕上显示*/ #include <stdio.h> main() { float grade; scanf_s("%f", &grade); if (grade > 0 && grade < 60) printf("没到60分,不及格,加油啦...\n"); else if (grade > 59 && grade < 90) printf("已及格,继续努力...\n"); else if (grade > 89 && grade <= 100) printf("优秀,歇歇吧给后面的学生一个机会!\n"); else printf("%g分数有误!重新打开输入\n", grade); }
switch语句和break语句
格式:
switch (表达式)
{
case 常量表达式1:语句1
case 常量表达式2:语句2
……
case 常量表达式n:语句n
default:语句n+1;
}
程序2
写一个程序供老师查询A、B、C三档分数各在什么范围
// 19-2switch语句查询.c //写一个程序供老师查询A、B、C三档分数各在什么范围 #include <stdio.h> main() { char a; scanf_s("%c", &a); switch (a) { case 'A': printf("90-100为A\n"); break; case 'B': printf("60-89为B\n"); break; case 'C': printf("0-59为C\n"); break; default: printf("输入格式错误\n"); } }
※switch语句出现嵌套时,break只会跳出本层switch
※default相当于if中的else
※break不对if语句起作用。
※case如果后面没有break,程序会继续向下执行,而不会跳出switch,如:
int a=1;
switch(a)
{
case 1:printf(“1\n”);
case 2:printf(“2\n”);
}
这时1和2都会打印在屏幕上。
※case后面只能是常量表达式,不能是变量,如:
case 1+2:
case ‘a’:
case 1<2:
都是合法的,而
switch(a)
{
case a:
case a<5:
}
因为a是变量,两条语句都不合法
程序3
投票统计
// 19-3投票统计.c // #include <stdio.h> main() { int xjl = 0, zzy = 0, nn = 0; int symbol = 0, input; do { printf("请输入喜欢的明星:1、徐静蕾 2、周子怡 3、妮妮:"); scanf_s("%d", &input); switch (input) { case 1:xjl++; break; case 2:zzy++; break; case 3:nn++; break; default:symbol = 1; break; } if (symbol == 1)break; } while (1); printf("投票结果\n徐静蕾:%d\n周子怡:%d\n妮妮:%d\n", xjl, zzy, nn); }