如果(break == 1)休息;不管用

时间:2016-03-09 17:59:16

标签: c if-statement break

#include<stdio.h>

int main() {
    int i;
    for( i = 0; i< 10 ; i++ ) {
        printf("test1 &d", i);
        if (i == 2)
            break;
    }
    if (break == 1) //line 10
        printf("test2 %d", i);

    getchar();
    return 0;
}

此代码返回两个错误。首先是第10行的语法错误中断。其次是第10行的表达式。

编辑:我没有使用break作为变量。我记得几年前为此目的使用休息时间,我记得它曾经工作过。所以我要求了解它是否有效,因为我使用的是其他编译器。

5 个答案:

答案 0 :(得分:4)

break不是变量,你无法比较它。这是一个指令。如果你想知道循环是否过早退出,而不是

if (break == 1)

你可以使用

if (i < 10)

答案 1 :(得分:3)

break是关键字,不能用作变量。

来自section 6.8.6.3 of the C standard

  

1 break语句只能出现在开关体或循环体中。

     

2 break语句终止执行最小的封闭开关   或迭代语句。

如果您想检测是否突破了for循环,则需要一个单独的变量:

#include<stdio.h>

int main() {
    int i, breakout = 0;
    for( i = 0; i< 10 ; i++ ) {
        printf("test1 &d", i);
        if (i == 2) {
            breakout = 1;
            break;
        }
    }
    if (breakout == 1) //line 10
        printf("test2 %d", i);

    getchar();
    return 0;
}

答案 2 :(得分:1)

您无法将'break'与整数进行比较。 Break是一个让你离开当前循环的语句。 我不确定你的意图是什么?你想做什么?

有关休息的更多信息: https://msdn.microsoft.com/en-us/library/37zc9d2w.aspx

答案 3 :(得分:0)

break语句不是函数,因此在使用语句时它不返回值。这意味着比较'break == 1`无效且无法测试。

答案 4 :(得分:0)

你的代码的问题在于你使用'break'作为变量,它是一个保留字;您不能将其视为变量。

如果你想要完成的是当且仅当for循环爆发时才能做某事,你可以在break语句之前调用printf并且它可以正常工作。