#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作为变量。我记得几年前为此目的使用休息时间,我记得它曾经工作过。所以我要求了解它是否有效,因为我使用的是其他编译器。
答案 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并且它可以正常工作。