java - if else 语句中条件的顺序重要吗?

标签 java if-statement

在编写bat Logic-2、loneSum 问题时,我输入了下面列出的第一种方法。除了一项测试外,它对所有测试都是正确的。它唯一失败的地方是所有变量都等于同一个整数。但是当我在网上查找解决方案时,我得到了下面列出的第二种方法,并且该方法有效。我认为我的方法和正确的解决方案之间的唯一区别是“else if(a==b && b==c){return 0;}”的位置。我的问题是条件的顺序对“if else”语句重要吗? (我提前为措辞道歉,英语不是我的母语。谢谢。)

 public int loneSum(int a, int b, int c) {
      int sum = a + b + c;
      if(a==b)
      {return c;}
      else if(b==c)
      {return a;}
      else if(c==a)
      {return b;}
      else if(a==b && b==c)
      {return 0;}
      else
      return sum;
    }

public int loneSum(int a, int b, int c) {
  int sum = a + b + c;

if(a==b && b==c)
  {return 0;}
  else if(b==c)
  {return a;}
  else if(c==a)
  {return b;}
  else if(a==b)
  {return c;}
  else
  return sum;
}

最佳答案

是的,条件的顺序很重要。在您的代码中,您首先测试 if(a==b)。如果所有 3 个整数都相同,则为 true 并且仅执行 return c;。它甚至不会影响其余的条件。

ifelse-if 中,仅按顺序评估所有条件,直到找到第一个 true 条件。

首先测试更具体的情况,即首先 if(a==b && b==c)

关于java - if else 语句中条件的顺序重要吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16406946/

相关文章:

java - 使用 Java 对 mysql 数据库进行简单备份和恢复

javascript - 将 YES/NO 转换为 true/false 的更优雅的方法

PHP:在if语句中分配多个变量

tsql - 存储过程 T-SQL If bool 检查

java - 将 Objective-C 代码转换为 Java 代码

java - 尝试将 if-else 语句转换为 switch 语句,但最终出现错误

java - 部署到 Tomcat 的 Spring boot WAR 和缺少静态资源的上下文

java - Android Room 实体 boolean 值与 DAO : Kotlin vs Java

单击 TableView 时 JavaFX 13 抛出 java.lang.ClassCastException

java - 如何追踪银行账户余额?