C 每次都跳过一个

C 每次都跳过一个,c,if-statement,C,If Statement,我对2if有问题。 第一个If为true,因为xb==0,而下一个为false,因为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) { ... } } 当两者都为真时,为什么跳过if测试?只有在第一个if测试由于else关键字

我对2
if
有问题。 第一个
If
为true,因为
xb==0
,而下一个为false,因为
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) {
        ...
    }
}

当两者都为真时,为什么跳过
if
测试?

只有在第一个
if
测试由于
else
关键字而为假时,才会执行第三个
if
测试

将您的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 ...
    }
}

@IrgendSonRandom请阅读以下内容:,并提供一个。当我正确理解你的问题时:删除
else中的
else
如果
语句,那么第二部分将正确运行。否则,仅当第一个
if(xb==0)
为false时,才会检查
else if(xb==0)