Оператор break: прерывание цикла

Оператор break позволяет прервать выполнение цикла досрочно. Для примера выведем все числа от 1 до 100 еще одним способом:

int i = 1;
while (1) {
   if (i > 100) break;
   std::cout << i << std::endl;
   ++i;
}

Здесь мы в условии указали значение 1. В этом случае инструкции внутри цикла будут выполняться бесконечно. Однако использование оператора break прерывает его выполнение, как только 100 строк уже напечатано.

Обратите внимание

Бесконечный цикл совместно с оператором break удобно использовать для получения неопределенного заранее количества данных от пользователя. В качестве примера просуммируем неопределенное количество целых чисел (листинг 4.7).

Листинг 4.7. Суммирование неопределенного количества чисел

#include <iostream>
#include <clocale>
#include <cstdio>

int main() {
   std::setlocale(LC_ALL, "Russian_Russia.1251");
   int x = 0, sum = 0, ch = 0;
   std::cout << "Введите число 0 для получения результата"
             << std::endl;
   for ( ; ; ) {
      std::cout << "Введите число: ";
      std::cout.flush();
      std::cin >> x;
      if (!std::cin.good()) {
         std::cout << "Вы ввели не число!" << std::endl;
         std::cin.clear(); // Сбрасываем флаг ошибки
         // Очищаем буфер
         while ((ch = std::cin.get()) != '\n' && ch != EOF);
         continue;
      }
      if (!x) break;
      sum += x;
   }
   std::cout << "Сумма чисел равна: " << sum << std::endl;
   return 0;
}

Учебник C++ (MinGW-W64)
Учебник C++ (MinGW-W64) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов