如果(中断== 1)中断;不管用

If (break == 1) break; is not working

#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;
}

这段代码returns两个错误。首先是第 10 行的语法错误中断。第二个是第 10 行的表达式。

编辑:我没有使用 break 作为变量。我记得几年前为此目的使用过 break,我记得它曾经有效。所以我想知道它当时是否有效,因为我使用的是不同的编译器或其他东西。

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

来自section 6.8.6.3 of the C standard

1 A break statement shall appear only in or as a switch body or loop body.

2 A break statement terminates execution of the smallest enclosing switch or iteration statement.

如果你想检测你是否跳出 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;
}

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

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

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

您的代码的问题是您使用 'break' 作为变量,它是一个保留字;你不能把它当作一个变量。

如果您想要完成的是当且仅当 for 循环发生时才做某事,您可以在 break 语句之前调用 printf,它会工作得很好。

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

if (break == 1)

你可以使用

if (i < 10)