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

时间:2017-11-24 23:40:21

标签: c nested

我想实现这个if-then-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;

2 个答案:

答案 0 :(得分:1)

`if (a) if (b)` 

相当于

`if (a && b)`

在你的情况下

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

将是

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

与初始代码完全不同。

答案 1 :(得分:0)

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

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更容易阅读。

相关问题