Цикл do while в C++: реализация и как он работает

Всем привет! Сегодня мы завершим тему, которую начали еще в самом начале изучения C++ — циклы. Циклы очень важны для программирования, поэтому в каждом языке вы можете встретить циклы: for, while и do while. О последнем из только что перечисленных циклов и пойдет речь.

 Как работает цикл do while в C++

Из названия цикла do while можно понять, что у него много общего с циклом while. Мы можем вспомнить, что в цикле while сначала происходит проверка условия, а потом уже выполняется тело цикла. У цикла do while похожая схема работы, но есть маленькое различие. Тело цикла выполняется раньше, чем произойдет проверка условия.

Да, это значит, что в любом случае тело цикла выполнится хотя бы раз, если даже условие первоначально является ложным.По этой причине цикл do while и не является столь популярным в C++. Но в некоторых ситуациях использование данного цикла просто необходимо.

 Как создать цикл do while в C++ 

Чтобы создать цикл do while нужно использовать данную конструкцию:

Давайте разберем, как работает данная конструкция:

  • В самом начале стоит зарезервированное слова — do. С помощью его мы как бы говорим компилятору, что дальше тело цикла do while.
  • <Тело цикла> — тут мы должны вписать тот код, который хотим, чтобы повторялся после каждой итерации.
  • while — считается тоже зарезервированным словам в C++, после которого компилятор должен понять, что дальше идет условие цикла.
  • В <Условие цикла> — мы должны записать логическое выражение, при истинности которого цикл будет выполняться дальше.

Очень важно знать! Когда вы реализовали данную конструкцию, нужно поставить точку с запятой после условия цикла. Многие начинающие прогеры забывают про это и потом из-за своей не внимательности ищут ошибку в совершенно другом месте.

 Как работает цикл do while на примере

Чтобы вы поняли, как работает конструкция do while, давайте разберем пример с ее использованием:

Давайте тщательно разберем данный пример:

  1. В строке 3: объявили переменную chislo. В этой переменной мы будем хранить все числа, которые пользователь будет вводить.
  2. В строке 5 — 6: сообщаем пользователю правила игры.
  3. В строке 10: считываем первое число пользователя в переменную chislo.
  4. В строке 12: объявили цикл do while. Давайте поподробнее разберемся, что происходит у него внутри:
    • В строках 14 — 15: проверяем введенное пользователем числа на четность, с помощью логического оператора ветвления if-else.
    • В строке 17: снова считываем введенное число.
    • В строке 19: проверяем условие цикла. В качестве логического выражение chislo != -1. Если пользователь ввел число -1, то цикл сразу же прекратит свою работу.

Похожую программу мы делали, когда изучали цикл while, и там мы вам сказали, что с помощью цикла do while эту задачу можно решить быстрее. Все дело в том, что в цикле while нам нужно сразу проверять условие, а здесь мы как бы делаем одну итерацию без проверки условия.

Но есть и минус использования цикла do while в нашем примере:

  • Дело в том, что если пользователь в самом начале введет число -1, то в нашем случае мы не проверим его (на число -1) и продолжим проверять числа на четность дальше.

 Как создать бесконечный цикл do while

В цикле do while, как и в других циклах, присутствует возможность создавать бесконечный цикл.

Если вы не знаете что такое бесконечный цикл, то мы сейчас вам напомним. Бесконечный цикл — это цикл как наверно понятно с названия бесконечный, что значит он никогда не закончится, только если не использовать оператор break. На примере ниже вы можете увидеть, что цикл do while никогда не закончится, так как переменная a всегда будет равна 1:

Обычно создание бесконечных циклов в программе является ошибкой программиста. Но иногда нам все таки нужно в своей программе применить бесконечный цикл.

 С помощью цикла do while создаем простую игру

Давайте попробуем создать такую игру, чтобы в ней мы смогли раскрыть все сильные стороны использования цикла do while.

Смысл игры будет заключаться в следующем:

  • Пользователь сообщит компьютеру о диапазоне чисел , из которых компьютер может выбрать случайное себе число. Самое маленькое число в диапазоне должно быть не меньше 1, а самое большое число не больше 9.
  • Дальше компьютер выберет 2 числа из диапазона. Из этих двух чисел он создаст двухзначное число.
  • Наша задача будет заключаться в следующем —  нам нужно найти число, которое создал компьютер.

Но чтобы мы не потратили много времени на поиск числа, компьютер будет нам помогать. Если мы ввели компьютеру число, то он сможет нам ответить вот такими фразами:

  • Число больше истинного.
  • Число меньше истинного.
  • Поздравляем, это правильный ответ!

Внизу находится реализация данной задачи:

По коду вам должно быть все понятно, кроме наверно одного. Мы в своей программе использовали булеву переменную, которую создали в строке 23. Мы ее создали чтобы операторы ветвления в строках 26-33 не срабатывали.

 Закрепление цикла do while в C++

Чтобы вам запомнить данный цикл, создайте у себя в программе цикл do while, который должен вывести сообщение «Ура! Теперь я знаю как работает цикл do while!» три раза.



Тест на тему «Цикл do while в C++»

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

If loading fails, click here to try again

Это простой тест, который поможет тебе определить твои пробелы связанные с циклом do while.
Начать


Если у вас есть вопрос по данной теме, вы можете оставить свой комментарий ниже у нас на сайте. Нам будет приятно, если вы поделитесь этим уроком с вашими друзьями. Удачи!




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

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