Операторы break и continue в C++




break и continue c++Оператор break в C++

С оператором break вы уже встречались, если читали наши статьи об операторе switch и о цикле for. И наверняка уже имеете представление о том, как он работает. Поговорим еще немного об этом операторе, возможно кому-то будет полезно.

Достаточно часто при использовании циклов и почти всегда при использовании оператора switch, программисту необходимо прервать выполнение тела цикла или тела switch соответственно. break, как раз используется в таких случаях. Так же, с помощью этого оператора прерывается бесконечный цикл. Когда его нужно прервать, в тело цикла добавляется условие, при выполнении которого сработает оператор break, а цикл завершит работу. В следующем примере, реализована простая игра: один игрок загадывает число от 1 до 7, второй должен отгадать его.

Чтобы всё было честно и игрок, который загадывает, не мог ввести число из недопустимого диапазона, запускаем бесконечный цикл в котором и происходят ввод и проверка числа. Если число соответствует необходимому диапазону — цикл прерывается (строки 15 — 18), если же нет — на экране появляется предупреждение и предложение ввести число снова. Так будет происходить, пока введенное число не войдет в нужный диапазон.

После ввода корректного числа, в строке 25 вызываем специальную функцию system(«cls»); , которая очистит содержимое экрана, перед тем, как второй игрок приступит к отгадыванию числа (сработает только в windows).

Далее определяем второй бесконечный цикл (строки 29 — 47), но уже со счетчиком myTry. Он будет считать количество попыток игрока отгадать число. Игрок вводит число и оно сразу проверяется на соответствие диапазону в строках 33 — 37. Если не соответствует — предупреждаем и отнимаем единицу от счетчика попыток myTry. Иначе если число в нужный диапазон вошло, проверяем соответствует ли оно загаданному числу (строки 38 — 42): да — поздравляем и прерываем цикл, нет — переходим к выполнению строк 43 — 46 — говорим об ошибке и предлагаем ввести число снова.

Результат:

оператор break c++

оператор break c++

Оператор continue в C++

Этот оператор применяется тогда, когда необходимо прервать (пропустить) текущую итерацию цикла и приступить к следующей итерации. При его выполнении в цикле for происходит остановка текущей итерации, переход к изменению управляющей переменной, а затем проверка условия продолжения выполнения цикла.

Решим такую задачу: Необходимо вывести на экран те числа, которые делятся на 7 без остатка и находятся в диапазоне от 1 до 70 .

Если число i не делится на 7 без остатка (остаток от деления не равен 0), сработает continue. То есть строка кода 12 уже не выполнится и мы не увидим число i на экране. В случае если остаток от деления i на 7 будет равен 0 (число делится на 7 нацело), тело if выполнено не будет и число будет показано.

Результат:

оператор continue в C++

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

Рассылка новых уроков по программированию:

Дата
Страница
Операторы break и continue в C++
Рейтинг
51star1star1star1star1star

Операторы break и continue в C++: 11 комментариев

  1. Ну опять сплошные косяки.
    В switch я не могу использовать continue?
    Примеры не удачные.

    Чтобы system работало надо stdlib.h подключить.

    system(«cls») сработает только в windows, ИМХО не стоит писать про это в обучающих статьях, вы не описываете что именно делает эта функция.

    >> myTry—; // уменьшаем счетчик попыток на единицу счетчик

    Счетчик, счетчик, счетчик, счетчик

    >> простая игра: Один игрок загадывает число

    Не уверен, но ИМХО двоеточие — это не точка, продолжаешь с маленькой буквы.

    >> Достаточно часто при использовании циклов и !!!ВСЕГДА!!! при использовании оператора switch, программисту необходимо прервать выполнение тела цикла или тела switch соответственно.

    switch (a) {
    case 1: ++b;
    case 2: ++b;
    default: ++c;
    }
    не работает?

    «Пишешь, публикуешь», а надо «пишешь, читаешь, правишь, публикуешь».

    1. зачем тебе в Свитче continue???
      «Чтобы system работало надо stdlib.h подключить» >> Нет. Тут у тебя частичная ошибка. stdlib.h и её аналог cstdlib нужны для работы с памятью, но в MVS среде можно не подключать эту библиотеку, так как она предкомпилирована уже во все проекты по умолчанию. Этот пример можно наглядно посмотреть с setlocale(), вроде бы надо подключать библиотеку locale.h, но и без неё всё работает хорошо. Так что ты частично не прав. Но правда под винду!

    2. >> простая игра: Один игрок загадывает число

      Не уверен, но ИМХО двоеточие – это не точка, продолжаешь с маленькой буквы.

      Гыг)) и снова ты придираешься… ты явно озабоченный на вопросах пунктуации)) А Орфус зачем по-твоему был придуман??

    3. Это здорово,когда хочется что-то исправить и правильно,но нужно быть признательным автору сайта,за понятное изложение материала.Мне как новичку:легко обучатся в этом сайте,в сравнении с другими сайтами.

  2. даже не так:

    пишешь();
    for (;;) {
    ошибки = читаешь();
    если (ошибки)
    правишь(ошибки);
    иначе
    break;
    }
    публикуешь();

      1. да? ну тогда глянь на задачу с игрой, вторая картинка! кажется что тут логическая ошибка, или я ошибаюсь? Загадали число 7, а отгадали 3)

      2. а не-не, это я провтыкал, там просто разделено на 2-х игроков.

  3. Интересно, если так разобраться, то и break и continue являются прерываниями, но только работают по-разному. break прерывает весь цикл и выходит из него, а continue просто пропускает один ход цикла и не прерывает его.

  4. и хоть Вова снова много раз кричал про ошибки, но всё же статья ценная ;)

Добавить комментарий

Код размещайте в тегах: <pre class="lang:c++ decode:true ">YOUR CODE</pre>