我有一个问题。我想我的代码可能有错,因为我的代码程序(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;
}
答案 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)
控件结构(例如if
和else
)后面没有分号(;
):
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;
}