在其他之前缺少陈述

时间:2011-12-26 02:22:27

标签: c

我正在尝试这个基本代码块来熟悉条件。我不认为我错过了一个括号或任何东西,但是我得到一个错误,我在第二个else子句之前错过了一个声明,但我不明白这一点。

#include stdio.h;
main()
{
    int a = 2;
    int b = 4;
    int c = 6;
    int d = 8;
    if ( a > b )
    {
        a = a - 1;
        printf("a = %d ", a);
    }
    else
    {
        if ( b >= c )
        {
            b == b ? : 2;
        }
        printf("b = %d ", b);
    }
    else
    {
        if ( c > d)
        {
            c = c + d;
        }
    }
    else
    {
        d = d / 2;
    }
}

有什么建议吗?

4 个答案:

答案 0 :(得分:3)

如果您正确缩进代码,您将看到问题:

} else {
    if ( c > d) {
        c = c + d; 
    } 
} else {
    d = d / 2;
}

答案 1 :(得分:1)

此代码与您的代码相同,以其他几种正统风格缩进。

int main(void)
{
    int a = 2;
    int b = 4;
    int c = 6;
    int d = 8;

    if (a > b)    
    {
        a = a - 1;
        printf("a = %d ", a); 
    }
    else
    {
        if (b >= c)   
        {
            b == b ? : 2; // Syntax errors here too (and statement with no effect?)
        }
        printf("b = %d ", b); 
    }
    else
    {
        if (c > d)
        {
            c = c + d; 
        } 
    }
    else
    {
        d = d / 2;
    }
}

正如您所看到的,有3个连续的else条款,只允许使用一个。

还有其他语法问题。

答案 2 :(得分:1)

C的结构只能有一个if语句的else语句。相反,它可能有几个elseif语句。为if语句添加更多else语句将报告其语法错误。

程序中的错误表明第二个必须在它之前有一个if。 因此,将所有中间else语句与嵌套if转换为elseif语句。保留最后的else语句,你可以摆脱那个错误。

答案 3 :(得分:0)

在C编程中 if .. else ..就像这样

 if( condition 1 )
        statement1;
     else if( condition 2 )
        statement2;
     else if( condition 3 )
        statement3;
     else
        statement4;