首页 > 解决方案 > C中带有嵌套if else else if的条件语句

问题描述

在书中找到了这段代码:

if(a > b)
    if(c > b) printf("one");
    else if(c == a) printf("two");
    else printf("three");
else printf("four");

问题是: 程序永远不会打印
a. one b. two c. three d. four

正确答案在b. two

这里,我不明白为什么它不会打印two,因为在给定的条件下,c可以等于a并且可以同时c大于b

标签: cif-statement

解决方案


如果a大于bc且不大于bc则永远不能等于a

您可以分发条件:

one将在a > b && c > b.

two将在a > b && c <= b && c == a. 因为c == a,这些条件等价于c > b && c <= b,它永远不会为真。


推荐阅读