可以,case后面要求出现的是语句,而没要求一定得是break语句。switch语法图参见https://www.zhihu.com/...
二、茬儿解析 我输入字符1后,程序执行完第13行 printf("1\n", var); 后,会继续从第14行 case '2': 开始执行呀,可不就输出字符2了嘛。13行的printf后没有break呀,可不就继续执行第14行嘛! 其实这也是C语言初学者经常会犯的一个错误,就是switch-case中忘记加break,导致整个程序的逻辑错了! 三、修正...
当我switch的英文就是开关的意思,我们把a当作一把钥匙,当我们a=2时,相当于插入钥匙孔case 2,这时候相当于switch开关打开,所有的case都无作用,全部都被打开,则没有break时也不会受到前面case影响,仍然会执行下面的语句,这是我个人见解。
case后面的常量表达式实际上只起语句标号作用,而不起条件判断作用,即“只是开始执行处的入口标号”。因此,一旦与switch后面圆括号中表达式的值匹配,就从此标号处开始执行;而且执行完一个case后面的语句后,若没遇到break语句,就自动进入下一个case继续执行,而不再判断是否与之匹配,直到遇到break语句才...
需要注意的是,switch语句中的每个case标签后面必须跟有break语句,用于终止该case的执行。如果没有break语句,程序将会继续执行下一个case标签的语句,这被称为"fall-through"(穿透),可以用于一些特殊的逻辑。
switch语句其实每个case都会判断的,所以要用break跳出有时候两个不同的case需要做相同的处理例如case10 case 9都是优秀那么case10: 之后不写任何语句,也不写break那么也会运行紧跟着的case 9:后面的语句,显示优秀就应为用这样的极值,所以在正常的case情况运行完后,要记得加break而在多个case有共同操作的时候,可以...
可以看一下,case语句只是被编译成了一个具体的入口地址,但是并没有告诉程序怎么出来,从哪里出来,那么如果没有出口地址,那么程序就会按顺序执行下去,所以case2入口地址处的代码也被执行了。 如果是加了break语句之后就变成下面这样了: 1 2 3 4 5 6
switch...case语句中case后没有加break时会继续执行下一个case,无论条件是否满足都会执行,除非遇到...
这是因为switch的case语句是用来根据满足条件从确定的行开始执行的,如果不加入break语句跳出switch逻辑,则会一直往下执行,这也是为什么上面的测试代码会出现传入参数为2时会输出2、3和default。为此,我们也可以看一下上面的代码编译后的class文件,通过eclipse打开后,我们可以看到如下内容:上面编译后的语句...
在大多数情况下,Switch语句的最后一个case选项不需要加break语句。这是因为当程序执行到最后一个case时,没有后续的case需要执行,因此程序会自动跳出Switch语句。如果在最后一个case选项中有一些需要特别处理的代码,比如某些清理操作,那么可以在最后一个case选项中添加break语句以确保这些代码能够得到执行。是否需要在最后一...