java - 这不会直接突破 if 语句吗?

标签 java if-statement case break

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

action = 2;mode = 1时,i会被设置为2吗?

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

switch(action){

   case 1: i = 1; break;

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

           i = 2;
           break;

   case 3: i = 3; break;

我将其重写为:

 case 2: if(mode != 1)
            i = 2;
         break;

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

最佳答案

不存在“if 循环”这样的东西。 Break 永远不能引用“if”语句。

参见Wasserman's answer指向语言规范的指针。

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

if(! (action == 2 && mode == 1)) {
     i = action;
}

关于java - 这不会直接突破 if 语句吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10784430/

相关文章:

java - 构造函数调用可覆盖方法(延迟调用)

python - 复杂复合 bool 表达式

MySql查询如果字段等于不同表中的字段更新不同的字段

java -/BOOT-INF/classes (No such file or directory) on spring boot java project

java - 我的 euler Project 函数结果错误

bash - IF ELSE声明

java - 同时链接多个方法调用?提供的示例

mysql - 可以在 UPDATE 语句中重复同一列吗?

Php Mysql 开关/案例声明

java - ReentrantReadWriteLock 非公平时为什么写线程拿不到锁?