这不会突破if语句吗?

Doo*_*ght 0 java if-statement case break

所以基本上给出了以下代码.

何时action = 2;mode = 1i被设置为2?

我正在研究同事代码,它是这样编写的,但我认为中断只会跳过if并继续其余部分case 2.所以基本上if语句是没有意义的.

switch(action){

   case 1: i = 1; break;

   case 2: if(mode == 1)
           {
              break;
           }

           i = 2;
           break;

   case 3: i = 3; break;
Run Code Online (Sandbox Code Playgroud)

我把它重写为:

 case 2: if(mode != 1)
            i = 2;
         break;
Run Code Online (Sandbox Code Playgroud)

但它不是唯一的地方,有些更复杂.如果我要重构它,我需要一些我正确的信息.

nes*_*983 7

没有"if循环"这样的东西.Break永远不会引用"if"语句.

有关指向语言规范的指针,请参阅Wasserman的答案.

此外,假设1 <= action <= 3,您的代码简化为:

if(! (action == 2 && mode == 1)) {
     i = action;
}
Run Code Online (Sandbox Code Playgroud)