if和else if语法

时间:2014-04-10 01:38:39

标签: java if-statement

这是

if (score >= 93)
 grade = "A";
if (score >= 84 && score <= 92)
 grade = "B";
if (score >= 75 && score <= 83)
 grade = "C";
if (score < 75)
 grade = "F";

与此相同

if (score>= 93)
 grade = "A";
else if (score >= 84)
 grade = "B";
else if (score >= 75)
 grade = "C";
else 
 grade = "F";

我认为它们都是不同的,因为对于底部,如果有人得分为95,则大于84和75.这意味着等级将是A,B和C.第一个if语句对score的上限和下限进行限制,因此每grade只能有一个score

3 个答案:

答案 0 :(得分:2)

这些逻辑在您的示例中是相同的。

if块中的if-else为真时,将跳过所有后续省略。

答案 1 :(得分:2)

您的两段代码碰巧会产生相同的结果,因为您的条件不会重叠。每个条件都会检查score的特定值范围。

但是,以下两段代码会产生不同的结果。

if (a > 5) {
   System.out.println("a is greater than 5");
}
if (a > 3) {
   System.out.println("a is greater than 3");
}

给定a = 10,该代码将产生:&#34; a大于5&#34;和&#34; a大于3&#34;。

但是这段代码:

if (a > 5) {
   System.out.println("a is greater than 5");
}
else if (a > 3) {
   System.out.println("a is greater than 3");
}

给定a = 10,该代码只会产生:&#34; a大于5&#34;。

答案 2 :(得分:1)

两个示例中的结果将是相同的。

实际执行的不同之处在于,在第一个示例中,无论score中保留的值如何,都将进行至少4次和最多6次比较。

在第二个例子中,只要表达式产生true,就不会进行任何后续比较。