这是
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
。
答案 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
,就不会进行任何后续比较。