C语言:if else 嵌套各if子句之间条件不能有交集吗(就是条件不能重复出现)

来源:百度知道 编辑:UC知道 时间:2024/05/12 18:14:15
我把我的意问题说详细一点,就是if elseif elseif else这种嵌套的if语句个子句之间的条件不能有交集吗?就是条件在这个if else子句出现的条件范围不能出现在另一个子句内,比如说if(x<5){表达式1};elseif(x>4&&x<10){表达式2};else{表达式3};这样写对吗?在这个例子中第一个if句子中x<5的一部分在第二个句子中也有一部分交集,所以我想问一下这样的写法对吗?

有交集应该还是可以运行!!
因为它先执行if(x<5)这个语句,如果符合,就不执行其后的else了,如果不符合(x>=5),那么它就执行后面的else,执行if(x>4&&x<10);所以程序运行是可以运行,
但是你后面的(x>4&&x<10)这个范围内是不可能会取到交集的,也就是说不可能去到4<x<5;因为如果那个数满足它们的交集,它也就满足第一个条件,那么它在第一次执行if语句时也就执行了,而不会再执行后面的else了!!
呵呵!!说得够明白了吧!!

if(x<5){表达式1};elseif(x>4&&x<10){表达式2};else{表达式3};
这样写没有错,但是4<x<5的部分会执行表达式1,只有x>=5&&x<10的部分才会执行表达式2。
最好不要写成有交集,对人来说语义模糊,但是对计算机是确定的。

这么写编译是可以通过的,但具体结果对不对得看你设计的算法是否正确了

如果x是交集中的值它只会执行第一个符合条件的if语句
如果你想每一个符合的都执行应该用另一个if语句
if()
{;}
if()
{;}不加else