我正在复习考试,虽然我们有答案密钥,但我不明白正确的答案。
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语句相关联,但我仍然感到困惑。感谢您的帮助。
答案 0 :(得分:3)
您发布的代码段是4个独立的,无关的if
语句,最后一个恰好具有else
条件。由于语句都是独立的,如果其中一个条件为真,那么也不会阻止其他if语句执行。
在您的代码段中,如果得分是例如95,然后将等级设置为'A',然后用'B'覆盖,然后用'C'覆盖,然后用'D'覆盖,最终将结果为'D'。但是,如果得分<1。 70,最终if
语句遗留下来的结果将与正确的结果一致,因此grade
只会使score < 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';
如果您在具有各种输入的调试器中尝试代码,并在第一行中断,则可以确切地看到发生了什么。
有关详细信息,请参阅the official tutorial on if-else
statements。
答案 1 :(得分:0)
这是正确的。如果得分大于70,则成绩将是最后一个要运行的语句,因此最后一项grade
将被设置为“D”。因此,您需要if语句或其他技术,例如撤消所有if语句(即将if score>= 90
放在最后)。