C语言:使用嵌套的If-if结构实现IF-then-if结构



我想实现此if-else-if结构:

if ( a > b )
    a = a - 1;
else if ( b >= c )
    b = b − 2;
else if ( c > d)
    c = c + d;
else
    d = d / 2; 

使用嵌套的if-then-if结构。我尝试了此代码,但没有给我与第一个代码相同的结果:

if ( c > d)
    if ( b >= c)
        if ( a > b)
            a=a-1;
        else
            b=b-2;
    else
        c=c+d;
else
    d=d/2;

`if (a) if (b)` 

等于

`if (a && b)`

在您的情况下

if ( c > d)
  if ( b >= c)
    if ( a > b)

将是

if ( c > d && b >= c && a > b) 

与您的初始代码相比,这是完全不同的。

如果您真的想要这样的嵌套,则可以尝试

if (a <= b) {
    if (b < c) {
        if (c <= d) {
            d = d / 2;
        } else {
            c = c + d;
        }
    } else {
        b = b - 2;
    }
} else {
    a = a - 1;
}

但是else if更容易阅读。

最新更新