带有单个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
)。