switch中case和break

突然想到一个问题,如果switch语句中,case的后面没有加break会怎么样呢?试试看,哈哈

/*可以猜想一下程序的运行结果。*/
#include "stdio.h"

int main()
{	
	char a = 0;
	printf("不加break\n");
	switch(a){
		case 0:printf("1\n");
		case 1:printf("2\n");
		case 2:printf("3\n");break;
		case 3:printf("4\n");
		default :break;
	}
	printf("加入break\n");
	switch(a){
		case 0:printf("a\n");break;
		case 1:printf("b\n");break;
		case 2:printf("c\n");break;
		case 3:printf("d\n");break;
		default :break;
	}
	return 0;
}
结果如下:
不加break
1
2
3
加入break
a

分析结果我们可以发现:
a的值逐个和 case 后的常量表达式比较,若不等则继续往下比较,若一直不等,则执行 default 后的语句;若等于某一个常量表达式,则从这个表达式后的语句开始执行,并执行后面所有 case 后的语句。
switch 语句不会在执行判断为真后的语句之后跳出循环,而是继续执行后面所有 case 语句。在每一 case 语句之后增加 break 语句,使每一次执行之后均可跳出 switch 语句,从而避免输出不应有的结果。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值