switch语句实现多分支选择结构

if语句中只有两个分支可供选择,而实际问题中常常需要用到多分支的选择。这时C语言提供switch语句直接处理多分支选择。
switch语句的一般形式:

switch(表达式)
{
case  常量1 : 语句1
case  常量2 : 语句2
......
case  常量n :  语句n
default :       语句n+1
}

注意:
① switch一般形式中括号内的“表达式”,其值类型应该是整数类型(包括字符型)。
② switch下面的花括号内是一个复合语句。这个复合语句包括若干语句,它是switch语句的语句体。语句体内包括多个以关键字case开头的语句行和最多一个 default 开头的行。
③ case后面跟一个常量(或常量表达式),如case 'A',它们和default都是起标号的作用,用来标志一个位置。执行switch语句时,先计算switch后面的“表达式”的值,然后将它与各case标号比较,如果与某一个case标号中的常量相同,流程就转到此case标号后面的语句。
④ 各个case标号出现次序不影响执行结果。例如:可以先出现“default”,然后出现“case ‘B’,……”。
⑤ 每一个case常量必须互不相同,否则就会出现互相矛盾的现象。
⑥一般情况下,在执行完一个case子句后,应当用break语句使流程跳出switch结构,即终止switch语句的执行。最后一个case子句(今为default子句)中可不必加break语句,因为流程已经到了switch结构的结束处。

利用switch-case,要求按照考试成绩的等级输出百分制分数段,
A等为85分以上,B等为70~84分,C等为60~69分,D等为60分以下。
成绩的等级由键盘输入。

编写程序

#include <stdio.h>
int main(){
	char grade;
	scanf("%c",&grade);
	printf("Your score:");
	switch(grade)
	{
		case 'A':printf("85~100\n");break;
		case 'B':printf("70~84\n");break;
		case 'C':printf("60~69\n");break;
		case 'D':printf("<60\n");break;
		default:printf("enter data error!\n");
	}
	return 0;
}

利用switch-case,给上面程序改写,即给出成绩判断等级

#include <stdio.h>
int main(){

	int score;
	scanf("%d",&score);
	printf("Your grade:");
	 if (score > 100 || score < 0) {
            printf("输入有误");
            return;// 这里就直接退出了
        }
	switch(score/10)
	{
		case 10:
		case 9:printf("A\n");break;
		case 8:printf("B\n");break;
		case 7:printf("C\n");break;
		case 6:
		case 5:
		case 4:
		case 3:	
		case 2: 
		case 1:
		case 0:printf("D\n");break;	
		default:printf("enter data error\n");
	}
	return 0;
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

注定暴富

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值