C如果每次都跳过一个

时间:2017-08-10 12:13:51

标签: c if-statement

我遇到2 if的问题。 第一个If是正确的,因为xb == 0但是下一个是假的,因为yb==1。在else if语句中,两个条件都得到满足。

xb = 0;
yb = 1;
xz = 0;
yz = 0;
if (xb == 0) {
    if (yb == 0) {
        ...
    }
} else if(xb == 0) {
    if (yb == 1) {
        ...
    }
}

为什么else if被跳过,两者都是真的?

1 个答案:

答案 0 :(得分:0)

第三个if仅在第一个if测试由于else关键字而为假时执行。

将你的ifs更改为:

xb = 0;
yb = 1;
xz = 0;
yz = 0;
if (xb == 0) {
    if (yb == 0) {
        // both xb and yb and 0 ...
    } else
    if (yb == 1) {
        // xb is 0 and yb is 1 ...
    }
} else {
    if (yb == 0) {
        // xb is not 0 and yb is 0 ...
    } else
    if (yb == 1) {
        // xb is not 0 and yb is 1 ...
    }
}