java - 多个 else/if 语句的目的?不是单个 if then else 语句

标签 java if-statement logic operand

我只是想知道编写 else 是否有任何目的,或者这纯粹是为了更好的代码可读性而编写的。例如,以下代码取自 oracle java 教程:

class IfElseDemo {
public static void main(String[] args) {

    int testscore = 76;
    char grade;

    if (testscore >= 90) {
        grade = 'A';
    } else if (testscore >= 80) {
        grade = 'B';
    } else if (testscore >= 70) {
        grade = 'C';
    } else if (testscore >= 60) {
        grade = 'D';
    } else {
        grade = 'F';
    }
    System.out.println("Grade = " + grade);
}
}

用 if 写“else if”部分肯定会做同样的事情吗?如果有人可以帮助向我解释这一点,我将不胜感激。谢谢

最佳答案

主要是关于性能,但也与你想要表达的内容有关!假设测试分数 >= 90,那么 Grade 变量将设置为“A”,并且不会评估其他 if 语句。

将代码重写为

class IfElseDemo {
  public static void main(String[] args) {

  int testscore = 76;
  char grade;

  if (testscore >= 90) {
    grade = 'A';
  } 
  if (testscore >= 80) {
    grade = 'B';
  }
  if (testscore >= 70) {
    grade = 'C';
  } 
  if (testscore >= 60) {
    grade = 'D';
  } else {
    grade = 'F';
  }
  System.out.println("Grade = " + grade);
  }
}

还会检查测试分数是否 >= 80 并将成绩设置为“B”,然后检查 >= 70 并将其设置为“C”,依此类推...

因此,在您的示例中,您不仅会得到错误的结果,而且还会进行更多检查!

关于java - 多个 else/if 语句的目的?不是单个 if then else 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49589115/

相关文章:

perl - perl-关闭if语句时语法错误

python - 索引错误 : single positional indexer is out-of-bounds and if condition

java - 难以导航与另一个 2d int 数组相关的 2d String 数组

java - Android导入图片到数组

java - 是否有任何正确的解决方案来获取和保存印地语字符并将这些字符显示到 jsp 页面?

javascript - Jquery if 条件为鼠标离开或鼠标进入

java - 证明 A == B, B==C, A != C

c - 递归函数怎么会返回一些东西?

java - optional ifPresent 调用对象方法

java - 如何确定 JAVA 中 jdbcTemplate 的 sql 查询类型?