Java 多个if语句和单个else语句

Java 多个if语句和单个else语句,java,if-statement,Java,If Statement,我正在复习考试,虽然我们有答案,但我不明白正确的答案 if (score >= 90) grade = 'A'; if (score >= 80) grade = 'B'; if (score >= 70) grade = 'C'; if (score >= 60) grade = 'D'; else grade = ‘F’; 应答键表示“只有当等级

我正在复习考试,虽然我们有答案,但我不明白正确的答案

if (score >= 90)
    grade = 'A';
if (score >= 80)
    grade = 'B';
if (score >= 70)
    grade = 'C';
if (score >= 60) 
    grade = 'D';
else 
    grade = ‘F’;

应答键表示“只有当等级<70时,此代码才能正常工作”。我知道else语句与最后一个if语句相关联,但我仍然感到困惑。提前感谢您的帮助。

您发布的代码片段是4条独立的、不相关的
if
语句,最后一条恰好有
else
条件。由于这些语句都是独立的,如果其中一个条件为true,则不会阻止其他if语句也执行

在您的代码片段中,如果分数为95,那么分数将设置为“A”,然后被“B”覆盖,然后被“C”覆盖,然后被“D”覆盖,最终将被设置为“D”。但是,如果分数<70,则最后的
if
语句留下的结果将与正确的结果一致,因此,当
分数<70
时,它只留下
等级
与正确的结果

正确的形式是:

if (score >= 90) grade = 'A';
else if (score >= 80) grade = 'B';
else if (score >= 70) grade = 'C';
else if (score >= 60) grade = 'D';
else grade = 'F';
如果您在具有各种输入的调试器中尝试代码,并在第一行中断,您可以确切地看到发生了什么


有关更多信息,请参阅。

您发布的代码片段是4个独立的、不相关的
if
语句,最后一个语句恰好有
else
条件。由于这些语句都是独立的,如果其中一个条件为true,则不会阻止其他if语句也执行

在您的代码片段中,如果分数为95,那么分数将设置为“A”,然后被“B”覆盖,然后被“C”覆盖,然后被“D”覆盖,最终将被设置为“D”。但是,如果分数<70,则最后的
if
语句留下的结果将与正确的结果一致,因此,当
分数<70
时,它只留下
等级
与正确的结果

正确的形式是:

if (score >= 90) grade = 'A';
else if (score >= 80) grade = 'B';
else if (score >= 70) grade = 'C';
else if (score >= 60) grade = 'D';
else grade = 'F';
如果您在具有各种输入的调试器中尝试代码,并在第一行中断,您可以确切地看到发生了什么


有关更多信息,请参阅。

您发布的代码片段是4个独立的、不相关的
if
语句,最后一个语句恰好有
else
条件。由于这些语句都是独立的,如果其中一个条件为true,则不会阻止其他if语句也执行

在您的代码片段中,如果分数为95,那么分数将设置为“A”,然后被“B”覆盖,然后被“C”覆盖,然后被“D”覆盖,最终将被设置为“D”。但是,如果分数<70,则最后的
if
语句留下的结果将与正确的结果一致,因此,当
分数<70
时,它只留下
等级
与正确的结果

正确的形式是:

if (score >= 90) grade = 'A';
else if (score >= 80) grade = 'B';
else if (score >= 70) grade = 'C';
else if (score >= 60) grade = 'D';
else grade = 'F';
如果您在具有各种输入的调试器中尝试代码,并在第一行中断,您可以确切地看到发生了什么


有关更多信息,请参阅。

您发布的代码片段是4个独立的、不相关的
if
语句,最后一个语句恰好有
else
条件。由于这些语句都是独立的,如果其中一个条件为true,则不会阻止其他if语句也执行

在您的代码片段中,如果分数为95,那么分数将设置为“A”,然后被“B”覆盖,然后被“C”覆盖,然后被“D”覆盖,最终将被设置为“D”。但是,如果分数<70,则最后的
if
语句留下的结果将与正确的结果一致,因此,当
分数<70
时,它只留下
等级
与正确的结果

正确的形式是:

if (score >= 90) grade = 'A';
else if (score >= 80) grade = 'B';
else if (score >= 70) grade = 'C';
else if (score >= 60) grade = 'D';
else grade = 'F';
如果您在具有各种输入的调试器中尝试代码,并在第一行中断,您可以确切地看到发生了什么



有关更多信息,请参阅。

这是正确的。如果分数大于70,那么grade将是最后一个要运行的语句,因此最后一个
grade
将设置为始终为“D”。因此,您需要else if语句或其他技术,例如反转所有if语句(即将
if得分>=90
放在最后)。

这是正确的。如果分数大于70,那么grade将是最后一个要运行的语句,因此最后一个
grade
将设置为始终为“D”。因此,您需要else if语句或其他技术,例如反转所有if语句(即将
if得分>=90
放在最后)。

这是正确的。如果分数大于70,那么grade将是最后一个要运行的语句,因此最后一个
grade
将设置为始终为“D”。因此,您需要else if语句或其他技术,例如反转所有if语句(即将
if得分>=90
放在最后)。

这是正确的。如果分数大于70,那么grade将是最后一个要运行的语句,因此最后一个
grade
将设置为始终为“D”。因此,您需要其他if语句,或其他技术,例如反转所有if语句(即将
if score>=90
放在最后)。

您困惑的是什么?只需手动跟踪,尝试将分数设置为80、70、60,并观察过程中发生的情况each@SotiriosDelimanolis为什么该代码不适用于之前的if语句?正如ASKASK所述,如果
score
的值为
100
,代码会发生什么情况?
grade
的最终值是多少?@user3453823在您的头脑中逐步进行。70的输出应为
C
。是吗?你有什么困惑吗?只是做一个手动跟踪,试着在心里把分数设置为80分,然后70分,然后60分,然后观察过程中发生了什么each@SotiriosDelimanolis为什么该代码不适用于之前的if语句?正如ASKASK所述,如果
score
的值为
100
,代码会发生什么情况?是什么