我想知道以下两个陈述是否相同,如果没有,为什么不相同.谢谢.
1)
if (score >= 90)
printf("A");
else if (score >= 80)
printf("B");
else if (score >= 70)
printf("C");
else if (score >= 60)
printf("D");
else
printF("F");
Run Code Online (Sandbox Code Playgroud)
2)版本1
if (score < 60)
printf("F");
else if (score > 70)
printf("D");
else if (score > 80)
printf("C");
else if (score > 90)
printf("B");
else
printf("A");
Run Code Online (Sandbox Code Playgroud)
2)版本2
if (score < 60)
printf("F");
else if (score < 70)
printf("D");
else if (score < 80)
printf("C");
else if (score < 90)
printf("B");
else
printf("A");
Run Code Online (Sandbox Code Playgroud)
对不起,我拼错了第二个选项中的标志.它们现在相同吗?
他们不是平等的.
例如,假设您的"得分"为95 - 在第一个选项中,您将打印"A",但在第二个选项中,您将打印"D"...
现在,我怀疑上面有一个拼写错误.如果将第二个示例中的所有比较切换为<而不是>,则它们将打印相同的答案.
但是,它们仍然不等同(至少在编译器优化之前).有一些微妙的差异.例如,第二个将比第一个更快地返回"D",但第一个将更快地返回"B".当然,这是一个非常微妙的差异,但它们是不同的.
编辑:基于编辑,怀疑上面的拼写错误是真的.请参阅下半部分仍然存在的差异.
这些将打印相同的值,但它们不相同.