Компилятор 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
петля, чтобы быть точным. Так почему же он дает эту ошибку?
Сообщение об ошибке достаточно ясно
ошибка: оператор разрыва не в пределах петля или же переключатель
Где в вашем коде есть цикл или оператор 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;
}
«break» предназначен для выхода из циклов switch / do / while / for (не для операторов if). В вашем примере нет необходимости в разрыве, поток программы просто продолжит выполнение оператора return (0), когда он достигнет того места, где сейчас находится оператор break.
Оператор break работает, только если он находится в цикле. Под циклом в C ++ это означает цикл, цикл while и цикл do … while. if
это проверить условие, когда отрываться от петли.
Если вы хотите, чтобы ваша программа работала (без перезапуска), поместите тестируемые операторы if в цикл (например, в цикл for).
Простейший цикл, который я использую:
do
{
if (number==0)
{
cout<<"Aborted."<<endl;
break;
}
else if( ... )
...}while(0);
Это будет цикл ровно один раз.