§ 5. Оператор цикла

5.4. Операторы break и continue

Достаточно часто при использовании циклов и почти всегда при использовании оператора switch возникает необходимость прервать выполнение тела цикла или команды множественного выбора. Для этого используется команда break. Использование break для прерывания команды switch рассматривалось в § 4.

Если оператор break встречается в теле цикла, то цикл прекращает свою работу, а программа продолжает выполняться со строки, следующей за циклом.

Пример 5.7. Написать программу, которая выведет только те числа таблицы из примера 5.6, которые находятся не выше главной диагонали [1].

Этапы выполнения задания

I. Результат программы не зависит от исходных данных.

II. Таблица с числами.

III. Алгоритм решения задачи.

1. Для вывода такой таблицы можно использовать два вложенных цикла. Первый будет определять десятки числа, а второй — единицы. 
2. Второй цикл будем прерывать с помощью команды break, если количество единиц равно количеству десятков. 
3. Вывод значений осуществляется в цикле.
4. 
После завершения вывода одной строки таблицы необходимо перевести курсор на новую строку.

IV. Описание переменных: i, j – int.

Оператор continue позволяет пропустить часть операторов тела цикла, стоящих после него и начать новую итерацию. Это можно использовать в тех случаях, когда нужно завершить текущую итерацию раньше времени.

Пример 5.8. Написать программу, которая выведет все числа таблицы из примера 5.6, исключая числа, оканчивающиеся на 5 или 7.

Этапы выполнения задания

I. Результат программы не зависит от исходных данных.

II. Таблица с числами.

III. Алгоритм решения задачи.

1. Для вывода такой таблицы можно использовать два вложенных цикла. Первый будет определять десятки числа, а второй — единицы.
2. 
Если значение параметра второго цикла равно 5 или 7, то будем пропускать команды вывода.
3. 
Вывод значений осуществляется в цикле.
4. 
После завершения вывода одной строки таблицы необходимо перевести курсор на новую строку.

IV. Описание переменных: i, j – int.


[1] Главная диагональ в таблице чисел (матрице) — все такие числа, у которых номер строки равен номеру столбца. Нумерация начинается с верхнего левого угла.

С помощью оператора break можно прервать бесконечный цикл. Для этого в тело цикла добавляется условие, при выполнении которого сработает оператор break, и цикл завершит работу. Например, если программа должна работать с двузначными числами, то следующий бесконечный цикл прервется только тогда, когда пользователь введет двузначное число.

do {

  cin >> n;

  if (> 9 && n < 100)

    break;

  else {

    cout << "Число не двузначное! ";

    cout << "Введите двузначное" << endl;

  }

}

while (true);

Пример 5.7.

V. Программа:

#include <iostream>

 

using namespace std;

 

int main()

{

  for (int i = 1; i < 10; i++) {

    for (int j = 0; j < 10; j++){

      if (>= i) break;

      cout << i * 10 + j << " ";

    }

    cout << endl;

  }

  return 0;

}


   VI. Тестирование.

    Многие программисты считают, что операторы break и continue нарушают структурность программного кода, и предпочитают обходится без них. Эти операторы всегда можно заменить операторами, которые относятся к основным алгоритмическим конструкциям. Однако разумное использование операторов break и continue может улучшить понятность циклов в программе.

    При вложенных циклах действия операторов break и continue распространяется только на тот цикл, в котором они содержатся.

    Пример 5.8.

    V. Программа:

    #include <iostream>

     

    using namespace std;

     

    int main()

    {

      for (int i = 1; i < 10; i++) {

        for (int j = 0; j < 10; j++){

          if (== 5 || j == 7)

            continue;

          cout << i * 10 + j << " ";

        }

        cout << endl;

      }

      return 0;

    }

     VI. Тестирование.