我目前正在学习C,而我在使用if语句时遇到了麻烦。
这是我到目前为止的代码:
#include <stdio.h>
int main()
{
int age = 18;
int ageToVote = 18;
if(age >= ageToVote)
return 0;
{
printf("You are old enough to vote.\n");
}
}
我被告知上面的代码应该给我输出:你已经足够投票了。
但出于某种原因,当我将int age = 18
更改为int age = 17
或任何其他低于18的数字时,它只会向我提供输出。
这显然没有意义,因为代码说如果年龄大于或等于18的agetovote值那么输出应该是你已经足够投票了。
为什么在数学不正确时显示正确输出的任何想法?
答案 0 :(得分:3)
这是因为复合语句
{
printf("You are old enough to vote.\n");
}
永远不会被执行。在return 0;
语句后删除if
。
if(age >= ageToVote)
{
printf("You are old enough to vote.\n");
}
答案 1 :(得分:1)
正确的代码:
#include <stdio.h>
int main()
{
int age = 18;
int ageToVote = 18;
if(age >= ageToVote)
{
printf("You are old enough to vote.\n");
}
return 0;
}
答案 2 :(得分:0)
相当于:
if(18 >= 18)
return 0;
当然 18 >= 18
,当然,它会立即返回。
我被告知上面的代码应该给我输出:你已经足够投票了。
谁告诉你这是不正确的。 return
关键字会导致函数立即退出。
答案 3 :(得分:0)
返回0;必须是您方法中的最后一个语句。
如果你把0回归;在IF之后和{}执行之前,你将忽略遗留陈述。