Основы программирования на С++ для начинающих

Операторы 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++

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

24 thoughts on “Операторы break и continue в C++

  1. Я довел до ума игрушку.
    У меня она как-то так вишла .
    #include
    #include
    using namespace std;
    int main ()
    {
    setlocale(LC_ALL, “Rus”);
    int zag = 0;
    int otv = 0;
    cout <> zag;
    if (zag >= 1 && zag <= 7)
    {
    break;
    }
    else
    {
    cout << "Неправильный диапазон! Введите число (от 1 до 10): ";
    }

    }
    system ("cls");
    cout << "Попробуйте угадать число которое загадал ваш противник." << endl;
    cout <> otv;
    if (otv 10 )
    {
    mtry–;
    pop++;

    cout << "Неправильный диапазон! Введите число (от 1 до 10): ";
    }
    else if (otv == zag)
    {
    cout << "Поздравляю.Вы угадали с " << pop++ << " попытки !";
    break;
    cin.get();
    }
    else
    {
    cout << "Вы не угадали, попробуйте ище раз: ";
    mtry–;
    pop++;
    if(mtry == 0)
    {
    system ("cls");
    cout << "Закончилось количество попыток. Вы Проиграли!";
    break;
    cin.get();
    }
    }
    cin.get();
    }

    }

  2. <pre class="lang:c++ decode:true "#include
    #include
    using namespace std;
    int main ()
    {
    setlocale(LC_ALL, “Rus”);
    int zag = 0;
    int otv = 0;
    cout <> zag;
    if (zag >= 1 && zag <= 7)
    {
    break;
    }
    else
    {
    cout << "Неправильный диапазон! Введите число (от 1 до 10): ";
    }

    }
    system ("cls");
    cout << "Попробуйте угадать число которое загадал ваш противник." << endl;
    cout <> otv;
    if (otv 10 )
    {
    mtry–;
    pop++;

    cout << "Неправильный диапазон! Введите число (от 1 до 10): ";
    }
    else if (otv == zag)
    {
    cout << "Поздравляю.Вы угадали с " << pop++ << " попытки !";
    break;
    cin.get();
    }
    else
    {
    cout << "Вы не угадали, попробуйте ище раз: ";
    mtry–;
    pop++;
    if(mtry == 0)
    {
    system ("cls");
    cout << "Закончилось количество попыток. Вы Проиграли!";
    break;
    cin.get();
    }
    }
    cin.get();
    }

    }

  3. Да блин 3 раза писал и нормальне не отображает .
    Удалите коментарии
    Вот нормальный

  4. Как в Linux очистить экран (как это делается в windows с помощью функции system (“cls”); )???

    1. Во-первых, какой “экран”? – терминал?
      Во-вторых, в Linux всё гораздо более гибко, разнообразно и дисциплинировано… Режимы ввода-вывода см. struct termios и всё что с ней связано.
      А управление экраном терминала делается, как вариант, “эскейп-последовательностями” управляющих байт. Например, очистка экрана терминала:

      #define ESC 27
      printf( "%c[2J", ESC );

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *