(C语言)break都没有,还纳闷儿啥呢?

不怕switch,就怕没有break的switch!

公众号:C语言编程技术分享

一、先找茬儿

有这么个练习,说让你输入一个数字字符,再输出来,而且要用switch来实现。

我是这么写的,如下:

#include <stdio.h>
#include <string.h>

int main()
{
	char var;
	printf("请输入一个字符: ");
	scanf("%c", &var);
	
	switch(var)
	{
		case '1':
		    printf("1\n", var);
		case '2':
			printf("2\n", var);
		default:
			printf("\n");
	}
	
	return 0;
}

来,运行一把,如下:

4a55e0d6ee1e41c5b72190b589542871.png

 呦呵,这咋回事儿,我输入字符1,输出倒是输出字符1,咋还买一送一多输出了个字符2?

小伙伴们先来找找茬儿,看看哪里错了?

二、茬儿解析

我输入字符1后,程序执行完第13行 printf("1\n", var); 后,会继续从第14行 case '2': 开始执行呀,可不就输出字符2了嘛。13行的printf后没有break呀,可不就继续执行第14行嘛!

其实这也是C语言初学者经常会犯的一个错误,就是switch-case中忘记加break,导致整个程序的逻辑错了!

三、修正茬儿

加个break就行啦,小伙伴们可以自己试试。有问题可以留言哦!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

C语言答疑课堂

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

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

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

打赏作者

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

抵扣说明:

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

余额充值