if..else..if ..这些代码不能正常工作(用C编码)

时间:2016-01-02 16:28:48

标签: c

我有一个问题。我想我的代码可能有错,因为我的代码程序(Dev C ++)似乎没有识别“else if”语句。

以下是代码:

#include <stdio.h>
int main()
{
int a = 80;
if(a == 10);
printf("value of a is 10\n");
else if(a == 20);
printf("value of a is 20\n");
else if(a == 30);
printf("value of a is 30\n");
else
printf("none of the values match");
printf("the real value of a is: &d", a);

system("PAUSE");
return 0;
}

4 个答案:

答案 0 :(得分:4)

if(a == 10);
           ^
...
else if(a == 20);
                ^

请勿在{{1​​}}和所有;语句之后添加if

注意 - 也包含else if中的最后else块 -

{}

另请注意你在else{ printf("none of the values match"); printf("the real value of a is: %d", a); // else in any case this will be printed } 中作为&d指定者的拼写错误,并由Cool guy发表评论。

答案 1 :(得分:4)

控件结构(例如ifelse)后面没有分号(;):

if (a == 10) /* here */
    printf("value of a is 10\n");
else if (a == 20)  /* and here */
    printf("value of a is 20\n");
else if (a == 30)  /* and here */
    printf("value of a is 30\n");
else
    printf("none of the values match");

为了帮助避免错误,通常最好用大括号({})包围每个块:

if (a == 10) {
    printf("value of a is 10\n");
} else if (a == 20) {
    printf("value of a is 20\n");
} else if (a == 30) {
    printf("value of a is 30\n");
} else {
    printf("none of the values match");
}

最后,由于所有条件都在a变量上,您可能需要考虑使用swtich语句而不是一系列if - else s :

switch (a) {
    case (10):
        printf("value of a is 10\n");
        break;
    case (20):
        printf("value of a is 20\n");
        break;
    case (30):
        printf("value of a is 30\n");
        break;
    default:
        printf("none of the values match");
        break;
}
printf("the real value of a is: %d", a);

答案 2 :(得分:3)

在&#34结束时你还有其他半音;如果&#34;和&#34;否则如果&#34; 然后删除然后尝试编译。

答案 3 :(得分:1)

当您使用if时,请使用

if (a == 10);

;的分号结束if。所以这里:

if(a == 10);
printf("value of a is 10\n");
else if(a == 20);

你会检查a的值是否为10,如果是,则不执行任何操作。在此之后,无论a的值如何,您都会打印出它是10.而且else if出现了if,因为if被关闭了分号。所以,你可以修改你的代码:

#include <stdio.h>
#include <stdlib.h>
int main()
{
int a = 80;
if(a == 10)
    printf("value of a is 10\n");
else if(a == 20)
    printf("value of a is 20\n");
else if(a == 30)
    printf("value of a is 30\n");
else
printf("none of the values match");
printf("the real value of a is: %d", a);

system("PAUSE");
return 0;
}

或者,以更优雅的方式,像这样:

#include <stdio.h>
#include <stdlib.h>
int main()
{
int a = 80;
if(a == 10) {
    printf("value of a is 10\n");
} else if(a == 20) {
    printf("value of a is 20\n");
} else if(a == 30) {
    printf("value of a is 30\n");
} else {
    printf("none of the values match");
}
printf("the real value of a is: %d", a);

system("PAUSE");
return 0;
}