Основи програмування на С ++ для початківців

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

перерву і продовжити 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 думки про "Оператори break і continue в C++

  1. Ну знову суцільні косяки.
    У switch я не можу використовувати continue?
    Приклади невдало.

    Щоб system працювало треба stdlib.h підключити.

    system(“cls”) сработает только в windows, ІМХО не варто писати про це в навчальних статтях, ви не описуєте що саме робить ця функція.

    >> myTry–; // зменшуємо лічильник спроб на одиницю лічильник

    Лічильник, лічильник, лічильник, лічильник

    >> проста гра: Один гравець загадує число

    Не впевнений, але я гадаю товстої кишки – це не крапка, продовжуєш з маленької літери.

    >> Досить часто при використанні циклів і !!!ЗАВЖДИ!!! при використанні оператора switch, програмісту необхідно перервати виконання тіла циклу або тіла switch відповідно.

    switch (a) {
    case 1: ++b;
    case 2: ++b;
    default: ++c;
    }
    не працює?

    “пишеш, publikueshy”, а треба “пишеш, читаєш, pravishy, publikueshy”.

    1. навіщо тобі в Світчі continue???
      “Щоб system працювало треба stdlib.h підключити” >> Нет. Тут у тебе часткова помилка. stdlib.h і її аналог cstdlib потрібні для роботи з пам'яттю, але в MVS середовищі можна не підключати цю бібліотеку, так як вона предкомпілірована вже в усі проекти за замовчуванням. Цей приклад можна наочно побачити з setlocale(), начебто треба підключати бібліотеку locale.h, але і без неї все працює добре. Так що ти частково не правий. Але правда під вінду!

    2. >> проста гра: Один гравець загадує число

      Не впевнений, але я гадаю двокрапка - це не крапка, продовжуєш з маленької літери.

      повага,)) і знову ти чіпляєшся… ти явно стурбований на питаннях пунктуації)) А Орфус навіщо по-твоєму був придуманий??

    3. Це здорово,коли хочеться щось виправити і правильно,але потрібно бути вдячним автору сайту,за зрозуміле виклад матеріала.Мне як новачкові:легко навчаться в цьому сайті,в порівнянні з іншими сайтами.

  2. навіть не так:

    пишеш();
    for (;;) {
    помилки = читаєш();
    если (помилки)
    pravishy(помилки);
    иначе
    break;
    }
    publikueshy();

      1. да? ну тоді глянь на завдання з грою, друга картинка! здається що тут логічна помилка, Або я помиляюсь? загадали число 7, а відгадали 3)

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

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

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

  5. що мать вашу значить ІМХО !?!??!?! я ватафакнулся вже вгадувати! умники яйцами мерятся в коментах, а я тільки почав вивчати і ці уроки допомагають! я роблю помилку через помилок в статті і сам її виправляю! я сам розумієте? вчуся на помилках!

    1. В оригіналі IMHO : In My Horrible Opinion – на мою скромну думку.
      Пізніше абревіатурі IMHO / ІМХО приписали багато інших розшифровок … например: маю Думка – Хер Оспоріш і т.д.

залишити коментар

Ваша електронна адреса не буде опублікований. Обов'язкові поля позначені * *