写switch case语句不加break会怎样

如题所述

switch 语句 中 case 几 冒号,相当于 入口指示牌, 若 不加break; 则 从 入口case 进入后,接着会依次通过所有后续 case 指示牌 和语句,直到 switch 语句 结束处。
例如:
n=2; switch(n) { case 1: x=9; case 2: x=7; case 4: x=12; defualt: x=8;}
将从 case 2: 进入,依次执行:
x=7; case 4: x=12; defualt: x=8; 结束。最终 得到 x=8。
如果是 n=2; switch(n) { case 1: x=9; case 2: x=7; break; case 4: x=12;break; defualt: x=8;} ; 将从 case 2: 进入 执行 x=7; 遇 break; 则结束开关语句。最终 得到 x=7。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-07-27
switch case语句犯得错误:
会犯这种错误,都是基础不牢固导致的。但是这样的错误却花费了我数小时去debug.想来真是很让人郁闷。
看一段代码:(不想看代码直接看后面总结)
private void arrange() {
switch (direction) {
case 'U':
case'R':
case'D':
case'L':
}
在这个语句中,如果direction=U。那么四个case语句都将执行。如果direction=R。将执行剩下三个语句。原因是switch语句原理是跳转到caseX位置执行剩下的语句,直到最后或者遇见break为止。因此在每一条语句最后+break即可。
private void arrange() {
switch (direction) {
case 'U': break;
case'R': break;
case'D': break;
case'L': break;
}
这样就能,每一个direction执行一步操作。
当然还有 别的用法,比如一个direction,让他可以执行两条或者3条操作这种。
总结:
switch语句原理是跳转到caseX位置执行剩下所有的语句(包括其他case里面的),直到最后或者遇见break为止。因此在每一条语句最后+break即可。
因此不加break的话将会执行跳转到的case本身以及以下所有的语句。本回答被网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网