Оператор break уже упоминался при описании переключателя switch. В циклах он выполняет ту же самую работу – прерывает их выполнение. Если break встречается во вложенных циклах, то он прерывает только тот цикл, в котором находится.
Пример использования оператора break:
#include <iostream>
#include <time.h>
using namespace std;
void main ()
{
setlocale(LC_ALL, "Russian");
srand(time(NULL));
int min = 1;
int max = 10;
cout << "Угадайте число от 1 до 10\n";
while (true)
{
int n = ((double)rand() / RAND_MAX) * (max – min + 1) + min;
short ua;
cin >> ua;
if (n == ua)
{
cout << "Правильно!\n";
break;
}
cout << "Неверно.\n";
}
system("pause");
}
Здесь пользователь пытается угадать число, сгенерированное компьютером в диапазоне от 1 до 10. Выражение
((double)rand() / RAND_MAX) * (max – min + 1) + min
как раз позволяет получить подобный диапазон используя функцию rand(), генерирующую псевдослучайные числа в пределах от 0 до RAND_MAX (32767).
При каждой новой попытке пользователя генерируется новое число и продолжается это до тех пор, пока числа не совпадут. При совпадении пользователю выводится сообщение об успехе, после чего вызывается оператор break, который сразу же прерывает выполнение цикла и передает управление на первую инструкцию после него – системную функцию вызова паузы.
Оператор continue выполняет переход к следующей итерации цикла. В цикле for сначала происходит переход на действие в заголовке, изменяющее счетчик и только потом – на условие. В циклах while и do…while переход происходит на проверку условия продолжения. Как и оператор break, в случае вложенных циклов continue относится только к тому циклу, в теле которого он непосредственно находится.
Пример использования оператора continue для вывода четных чисел от 1 до 100 и вычисления их суммы:
#include <iostream>
using namespace std;
void main ()
{
int sum = 0;
for (int i = 1; i <= 100; i++)
{
if (i % 2)
continue;
cout << i << ' ';
sum += i;
}
cout << "\nS= " << sum << endl;
system("pause");
}
Для определения четности числа используется операция % – остаток от деления. Нечетные числа делятся на 2 с остатком в 1, что в условии интерпретируется как истина. При выполнении условия, т.е. если текущее число – нечетное, выполняется оператор continue и происходит переход на следующую итерацию цикла. При этом нечетное число не выводится на экран и не участвует в суммировании.