G ++编译器出现以下错误:
error: break statement not within loop or switch
虽然我的代码如下:
#include <iostream>
using namespace std;
int number;
int main() {
cout << "Let's check whether an integer is even or odd." << endl;
cout << "Input new for checking a new number." << endl;
cout << "Input 0 when done." << endl;
cout << "Enter a number to check whether it's even or odd." << endl << endl;
cin >> number;
if (number == 0) {
cout << "Aborted." << endl;
break;
} else if (number % 2 == 0) {
cout << "Number is even." << endl;
} else {
cout << "Number is odd." << endl;
}
return (0);
}
正如您所看到的,确切地说,break
语句 是一个循环,if
循环。那么为什么会出现这个错误?
答案 0 :(得分:1)
错误消息足够清晰
错误:break语句不在循环或开关
内
您的代码中使用break语句的循环或swictch语句在哪里?
只需从此处删除break语句
if (number==0) {
cout<<"Aborted."<<endl;
break;
}
并简单地写
if (number==0) {
cout<<"Aborted."<<endl;
}
程序中还写了一个循环。所以该程序看起来像
#include <iostream>
int main()
{
std::cout << "Let's check whether an integer is even or odd." << std::endl;
std::cout << "Input new for checking a new number." << std::endl;
std::cout << "Input 0 when done."<< std::endl;
while ( true )
{
std::cout << "\nEnter a number to check whether it's even or odd (0-exit): ";
int number = 0;
std::cin >> number;
if ( number == 0 ) break;
if ( number % 2 == 0 )
{
std::cout<< "Number is even." << std::endl;
}
else
{
std::cout << "Number is odd." << std::endl;
}
}
return 0;
}
答案 1 :(得分:0)
&#34;破&#34;意味着打破switch / do / while / for循环(不是#34;如果&#34;语句)。您的示例中不需要中断,程序流程将继续到&#34; return(0)&#34;声明到达你现在有破坏声明的地方。
答案 2 :(得分:0)
break语句只有在循环中才有效。通过C ++中的循环,这意味着循环,while循环,并执行... while循环。 if
用于测试何时脱离循环的条件。
如果您希望程序正常工作(不重新启动),请将测试if语句放入循环(例如,for循环)。
答案 3 :(得分:0)
我使用的最简单的循环是:
do
{
if (number==0)
{
cout<<"Aborted."<<endl;
break;
}
else if( ... )
...
}while(0);
这将完全循环一次。