![](/img/trans.png)
[英]purpose of multiple else/if statements? NOT single if then else statement
[英]Multiple if statements with single else statement
我正在审查考试,尽管我们有答案键,但我不知道正确的答案。
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
语句会用正确的结果一致,因此它只能离开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';
如果您在具有各种输入的调试器中尝试代码,并在第一行中断,则可以确切地看到发生了什么。
有关更多信息,请参见有关if-else
语句的官方教程 。
那是对的。 如果分数大于70,则分数将是最后一个要执行的语句,因此将最后一个grade
设置为始终为“ D”。 因此,您需要其他if语句,或另一种技术,例如反转所有if语句(即,将if score>= 90
放在最后)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.