C语言之switch语句用法

【知识点】

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

(1) 括号内的“表达式”,其值的类型应为整数类型(包括字符型)。
(2) 花括号内是一个复合语句,内包含多个以关键字case开头的语句行和最多一个以default开头的行。case后面跟一个常量(或常量表达式),它们和default都是起标号作用,用来标志一个位置。执行switch语句时,先计算switch后面的“表达式”的值,然后将它与各case标号比较,如果与某一个case标号中的常量相同,流程就转到此case标号后面的语句。如果没有与switch表达式相匹配的case常量,流程转去执行default标号后面的语句。
(3)
可以没有default标号,此时如果没有与switch表达式相匹配的case常量,则不执行任何语句。
(4) 各个
case标号出现次序不影响执行结果
(5) 每一个case常量必须互不相同;否则就会出现互相矛盾的现象。
(6) case标号只起标记的作用。在执行switch语句时,根据switch表达式的值找到匹配的入口标号,在执行完一个case标号后面的语句后,就从此标号开始执行下去,不再进行判断。因此,一般情况下,在执行一个case子句后,应当用
break语句使流程跳出switch结构。最后一个case子句(今为default子句)中可不加break语句。
(7) 在case子句中虽然包含了一个以上执行语句,但可以不必用花括号括起来,会自动顺序执行本case标号后面所有的语句。当然加上花括号也可以。
(8) 多个case标号
可以共用一组执行语句
 

【示例1】
要求按照考试成绩的
等级输出百分制分数段,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;
}


【示例2】
要求按照百分制
分数段输出考试成绩的等级,85分以上为A等,70~84分为B等,60~69分为C等, 60分以下为D等。成绩的等级由键盘输入。

#include <stdio.h>
int main() {
	int x,score;
	scanf("%d",&score);
	x=score/10;
	if(score>=80 && score<=84) x=7;	

	switch(x) {
		case 8:
		case 9:
		case 10:printf("A\n");break;
		case 7:printf("B\n");break;
		case 6:printf("C\n");break;
		default:printf("D\n");
	}
	return 0;
}



 

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值