带有单个else语句的多个if语句

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

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条件。 由于语句都是独立的,如果其中一个条件为真,那么这也不会阻止其他if语句执行。

在你的片段中,如果得分是例如95,那么等级将被设置为’A’,然后被’B’覆盖,然后被’C’覆盖,然后被’D’覆盖并且最终将被结束为’D’。 但是,如果得分<70,则最终if语句留下的结果将与正确的结果一致,因此当score < 70时,它只会留下具有正确结果的grade

正确的forms是:

 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'; 

如果您在具有各种输入的调试器中尝试代码,并在第一行中断,您可以确切地看到正在发生的事情。

有关更多信息,请参阅有关if-else语句的官方教程 。

那是正确的。 如果分数大于70,则成绩将是最后一个要运行的语句,因此最后一个grade将被设置为“D”。 因此,您需要if语句或其他技术,例如撤消所有if语句(即最后将if score>= 90 )。