switch语句

switch语句
在一些实际问题中,分类情况特别的多,如果用if语句的嵌套,层数太多,容易出错,这时我们就该用switch语句

switch语句的一般格式为

switch(表达式)
{
	case:常量表达式1:语句组1;[break];//可加可不加
	case:常量表达式2:语句组2;[break];
	·····
	case:常量表达式n:语句组n;[break];
	[default:语句组n+1]
	}

在执行过程中:先计算表达式的值,然后从前往后依次case子句中所列出的各个常量表达式的值进行比较,若表达式的值与常量中的值相等,就开始进入相应的case后面的语句执行,遇到后续的case也不再进行判断(默认匹配),直至遇到break或语句结束。default表示与表达式和所有常量表达式都不匹配,那么就执行default语句组。如果都不匹配那么不需要执行任何语句,则default可以省略

接下来我们来看两组代码

	#include<cstdio>
	int main()
	{
	char a;
	scanf("%c",&a);
	switch(a)
	{
	case'+':printf("+");break;
	case'-':printf("-");break;
	case'*':printf("*");break;
	case'/':printf("/");break;
	default:printf("input invalid");
	}
	return 0;
}

这是第一组,思考一下输入“-”会输出啥

接下来看第二组代码

#include<cstdio>
int main()
{
	char a;
	scanf("%c",&a);
	switch(a)
	{
		case'+':printf("+");
		case"-":printf("-");
		case"*":printf("*");
		case"/":printf("/");
		default:printf("input invalid");
	}
	return 0;
}

思考这组代码输入“-”会输出啥

两组代码代码上面有什么区别,而输出又有什么区别?答案我们后面公布

切记:使用·switch语句时要注意以下几点:
1.switch后面的表达式,取值只能是整型、字符型、布尔型或枚举型。case后面的常量表达式,其取值类型要和switch后面的表达式类型一致。
2.任意两个case的表达式的值必须各不相同,否则将引起歧义
3.语句组可以是复合语句,也可以是一条语句
4.多个case可以共用一组程序

思考
以下代码分别输入A,B,C会输出啥

#include<cstdio>
int main()
{
	char a;
	scanf("%c",&a);
	switch(a)
	{
		case'A':
		case'B':
		case'C':printf("Pass");break;
	}
	return 0;
 } 

这题答案是Pass,因为三个case共用一个语句组"printf("Pass");break;"所以输出都
是Pass

我们公布一下第一题的答案:只有"-"
第二题的答案:"-*/input invalid"
两者代码的差别是:第一个每个case后面都有break
第二个是只有最后的default才有break

好了
这节课就讲到这里

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值