Ошибка: оператор break не в цикле, когда на самом деле это?

Компилятор 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 петля, чтобы быть точным. Так почему же он дает эту ошибку?

-2

Решение

Сообщение об ошибке достаточно ясно

ошибка: оператор разрыва не в пределах петля или же переключатель

Где в вашем коде есть цикл или оператор 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

Другие решения

«break» предназначен для выхода из циклов switch / do / while / for (не для операторов if). В вашем примере нет необходимости в разрыве, поток программы просто продолжит выполнение оператора return (0), когда он достигнет того места, где сейчас находится оператор break.

0

Оператор break работает, только если он находится в цикле. Под циклом в C ++ это означает цикл, цикл while и цикл do … while. if это проверить условие, когда отрываться от петли.

Если вы хотите, чтобы ваша программа работала (без перезапуска), поместите тестируемые операторы if в цикл (например, в цикл for).

0

Простейший цикл, который я использую:

do
{
if (number==0)
{
cout<<"Aborted."<<endl;
break;
}
else if( ...  )
...}while(0);

Это будет цикл ровно один раз.

0
По вопросам рекламы [email protected]