我有些困惑,为什么所有的情况都在这里执行,即使那些不匹配的情况也要在这里删除break语句:
int i = 0;
switch ( i ) {
case 0: System.out.print (i) ;
case 1: System.out.print (i) ;
case 2: System.out.print (i) ;
case 3: System.out.print (i) ;
default : System.out.print (i) ;
}
此代码打印出值i的5倍。如果要在案例0之后添加一个中断,它将只输出一次值。
阅读一些书籍中的文档和功能说明,我希望它只打印匹配的情况。
是因为以某种方式枚举?很抱歉,我找不到更好的解释,而且已经进行了广泛的搜索,因此我认为以前已经有人问过它,我也不擅长搜索,或者它太基础了。
每次读取后必须输入break
命令,以退出switch
!
int i = 0;
switch ( i ) {
case 0: System.out.print (i) ;
break ;
case 1: System.out.print (i) ;
break ;
case 2: System.out.print (i) ;
break ;
case 3: System.out.print (i) ;
break ;
default : System.out.print (i) ;
break ;
}
I java,switch
语句,一旦与case
匹配,则执行匹配子句后的所有case
子句。这是预期的行为。如果需要停止此操作,则在每个case
处中断,以便一旦匹配case
,它将仅执行case
,然后从switch
块中断。
这是来自官方的javadoc
break语句是必需的,因为没有它们,开关块中的语句会掉入:匹配的case标签之后的所有语句将按顺序执行,而不管后续case标签的表达如何,直到遇到break语句为止。
尝试使用不同的i
值的代码,您将亲自查看switch
的行为。
I java,switch
语句,一旦与case
匹配,则执行匹配子句后的所有case
子句