如果C中的语句不能正常工作

时间:2013-11-25 19:24:12

标签: c

我目前正在学习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值那么输出应该是你已经足够投票了。

为什么在数学不正确时显示正确输出的任何想法?

4 个答案:

答案 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之后和{}执行之前,你将忽略遗留陈述。