Оператор do-while (C)
Оператор do-while позволяет повторять простой или составной оператор, пока указанное выражение не примет значение false.
Синтаксис
iteration-statement: do statementwhile (expression) ;
Выражение expression в операторе do-while вычисляется после выполнения тела цикла. Поэтому тело цикла всегда выполняется по крайней мере один раз.
Выражение expression должно иметь арифметический тип или тип указателя. Выполнение происходит следующим образом:
- Выполняется тело оператора.
- Затем вычисляется значение expression. Если выражение expression имеет значение false, выполнение оператора do-while завершается и управление передается следующему оператору программы. Если expression имеет значение true (то есть не равно нулю), процесс повторяется с шага 1.
Выполнение оператора do-while также прерывается, когда в теле оператора выполняется оператор break , goto или return .
Это пример оператора do-while:
Циклы. Цикл while. Что это. Что делает. Пример. Синтаксис. Урок #14.
do < y = f( x ); x—; >while ( x > 0 );
В этом операторе do-while два оператора y = f( x ); и x—; выполняются независимо от начального значения переменной x . Затем вычисляется выражение x > 0 . Если x больше 0, тело оператора выполняется еще раз и снова вычисляется выражение x > 0 . Тело оператора многократно выполняется, пока значение переменной x остается больше 0. Выполнение оператора do-while завершается, когда значение переменной x становится равным 0 или отрицательным. Тело цикла выполняется по крайней мере один раз.
Источник: learn.microsoft.com
Циклы Java: While и Do-While
Цикл Java While Do – это инструкция, позволяющая запускать один и тот же фрагмент кода несколько раз. Этот цикл можно использовать для повторения действий при соответствии условий.
Цикл While
Цикл while является самым простым для построения на языке Java . Он состоит из ключа while , условия loop , а также тела цикла:
while (condition) < // loop body >
Каждый отдельный запуск тела цикла расценивается как итерация. Перед каждой итерацией производится оценка условий цикла. Его тело исполняется, только если условия цикла по результатам оценки равно true .
Итерации цикла что-то меняют, и в определенный момент оценка условий возвращает false , после чего цикл завершается. Цикл, условие которого никогда не возвращает false , исполняется бесконечное количество раз. Такие циклы называются бесконечными.
int num = 0; while (num
Этот пример выводит числа от 0 до 9 . Давайте пошагово пройдёмся по коду. Сначала мы инициализируем переменную num со значением равным 0 . Это будет счётчик цикла. Когда программа доходит до while , производится оценка выполнения условий цикла. В нашем случае 0 < 10 возвращает значение true и исполняется тело цикла. Внутри цикла выводится переменная num , а затем увеличивается на 1 . На этом завершается первая итерация.
Циклы. Цикл do while. Что это. Что делает. Пример. Синтаксис. Урок #15.
Завершающая итерация начинается, когда значение num равняется 9 . Счётчик цикла выводится в последний раз, и значение увеличивается до 10 . На этот раз новая итерация не может быть запущена, так как условие цикла выдаёт значение false . Так как 10 не меньше 10 .
Таким образом, цикл запускается до тех пор, пока условием цикла выполняется. Вооружившись этим знанием, можно создавать более сложные и функциональные циклы. Давайте проведёт итерацию с массивом:
String[] names = ; int index = 0; while (index
Концепция этого примера схожа с предыдущим. Мы инициализируем счётчик цикла и запускаем итерацию по массиву до тех пор, пока выводятся все элементы. В результате, итерация по массивам – довольно распространённый случай, и в Java для этого есть более подходящая конструкция – цикл For .
Цикл do-while
Цикл Java while do похож на while , но имеет существенное отличие: в отличие от while , здесь условие проверяется по окончании каждой итерации. Это значит, что цикл do-while всегда исполняется хотя бы один раз:
do < // loop body >while (condition);
do-while сначала исполняет тело цикла, а затем оценивает его условия. В зависимости от полученного результата цикл останавливается или запускается следующая итерация. Давайте рассмотрим простую игру « угадай имя »:
Scanner scanner = new Scanner(System.in); String guess; do < System.out.print(«Угадай имя: «); guess = scanner.nextLine(); >while (!»Daffy Duck».equals(guess)); System.out.println(«Поздравляю! Ты угадал моё имя!»);
В этом while Java примере используется Scanner для парсинга ввода из system.ini . Это стандартный канал ввода, который в большинстве случаев взаимодействует с клавиатурой. Проще говоря, мы просто читаем текст, который вводит игрок.
В игре необходимо спросить пользователя хотя бы раз, и делать это до тех пор, пока игрок вводит правильные ответы. Цикл do-while идеально подходит для таких случаев. В теле цикла мы получаем пользовательское значение, а затем проводится проверка правильности ответа. Цикл должен запускаться до тех пор, пока вводимое пользователем значение не становится равным Daffy Duck . Если правильный ответ получен, цикл останавливается, и мы поздравляем игрока с победой.
В завершение
Циклы while true Java позволяют использовать фрагменты кода несколько раз. Сегодня мы познакомились с циклами Java while и do-while . Они похожи тем, что проверяют условия и исполняют тело цикла, если по результатам оценки условия получено значение true . Но при этом у них есть существенное отличие: условие цикла while проверяется до итерации, а условие цикла do-while – по окончании каждой итерации. Это значит, что цикл do-while всегда исполняется как минимум один раз.
Валентин Сейидов автор-переводчик статьи « Java’s While and Do-While Loops in Five Minutes »
Источник: www.internet-technologies.ru
Цикл while в Python
Из этого материала вы узнаете, что такое циклы while, как они могут становиться бесконечными, как использовать инструкцию else в цикле while и как прерывать исполнение цикла.
Управление потоком инструкций: цикл While в Python
Как и другие языки программирования Python включает несколько инструкций для управления потоком. Одна из таких — if else. Еще одна — циклы. Циклы используются в тех случаях, когда нужно повторить блок кода определенное количество раз.
Что такое цикл while в Python?
Цикл while используется в Python для неоднократного исполнения определенной инструкции до тех пор, пока заданное условие остается истинным. Этот цикл позволяет программе перебирать блок кода.
while test_expression: body of while
Сначала программа оценивает условие цикла while. Если оно истинное, начинается цикл, и тело while исполняется. Тело будет исполняться до тех пор, пока условие остается истинным. Если оно становится ложным, программа выходит из цикла и прекращает исполнение тела.
Рассмотрим пример, чтобы лучше понять.
a = 1 while a 10: print(‘Цикл выполнился’, a, ‘раз(а)’) a = a+1 print(‘Цикл окончен’)
Цикл выполнился 1 раз Цикл выполнился 2 раз Цикл выполнился 3 раз Цикл выполнился 4 раз Цикл выполнился 5 раз Цикл выполнился 6 раз Цикл выполнился 7 раз Цикл выполнился 8 раз Цикл выполнился 9 раз Цикл окончен
Бесконечный цикл while в Python
Бесконечный цикл while — это цикл, в котором условие никогда не становится ложным. Это значит, что тело исполняется снова и снова, а цикл никогда не заканчивается.
Следующий пример — бесконечный цикл:
a = 1 while a==1: b = input(‘Как тебя зовут?’) print(‘Привет’, b, ‘, Добро пожаловать’)
Если запустить этот код, то программа войдет в бесконечный цикл и будет снова и снова спрашивать имена. Цикл не остановится до тех пор, пока не нажать Ctrl + C .
Else в цикле while
В Python с циклами while также можно использовать инструкцию else . В этом случае блок в else исполняется, когда условие цикла становится ложным.
a = 1 while a 5: print(‘условие верно’) a = a + 1 else: print(‘условие неверно’)
Этот пример демонстрирует принцип работы else в цикле while.
условие верно условие верно условие верно условие верно условие неверно
Программа исполняет код цикла while до тех, пока условие истинно, то есть пока значение a меньше 5. Поскольку начальное значение a равно 1, а с каждым циклом оно увеличивается на 1, условие станет ложным, когда программа доберется до четвертой итерации — в этот момент значение a изменится с 4 до 5. Программа проверит условие еще раз, убедится, что оно ложно и исполнит блок else , отобразив «условие неверно».
Прерывания цикла while в Python
В Python есть два ключевых слова, с помощью которых можно преждевременно остановить итерацию цикла.
-
Break — ключевое слово break прерывает цикл и передает управление в конец цикла
a = 1 while a 5: a += 1 if a == 3: break print(a) # 2
a = 1 while a 5: a += 1 if a == 3: continue print(a) # 2, 4, 5
Источник: pythonru.com
Циклы. While, do while, for, чем отличаются?
while — выполняется пока заданное выражение правда (проверка перед одним циклом выполнения)
while do — выполняется пока заданное выражение правда (проверка после одного цикла выполнения)
for — создано для выполнения кода n-ное количество раз
Вообще недавно видел забавную картинку, которая хорошо это дело демонстрирует
Спойлер
Rikonardo, ну вы то че))while и do while одинаковые. Разница в том что последний запускает тело цикла без проверки на первой итерации.
Ярослав Иванов, ну по крайней мере нам на курсах c# рассказали, что do while проводит проверку после пробега кода внутри (итерации), а while сначала проверяет, а потом выполняет
Rikonardo, все верно) только это на первых итерациях. Потом они идентичны)
while, do while, for
Прошу объяснить понятными определениями..
Решения вопроса 1
Программист на «си с крестами» и не только
While — сначала проверь, потом сделай, и так по кругу.
Do — сначала сделай, потом проверь, и так по кругу.
Отличаются они только случаем, когда условие не выполняется: while не пройдёт, а do пройдёт один раз.
// Пример 1. // верно while (впереди свободно) шаг; // неверно — можно врезаться в препятствие, если нельзя сделать ни шагу do шаг while (впереди свободно); // Пример 2. // Неверно — пока у вас в руках нет рубашки, условие цикла некорректно while (рубашка грязная) возьми рубашку; // верно do возьми рубашку; while (рубашка грязная);
Циклы for, foreach и прочие — это разновидность цикла while (не do!!), сделанная для специального сценария: пройти некий набор объектов.
Ответ написан более трёх лет назад
Комментировать
Нравится 5 Комментировать
Ответы на вопрос 4
Учим yii: https://youtu.be/-WRMlGHLgRg
Слишком очевидный ответ, если посмотреть на примеры: www.php.su/learnphp/cs/?cycles
Допустим у Вас есть коробочка в которой хранятся бутылочки с «пивасиком» и бутылочки с «молоком»
Если Ваш батя попросил протереть все бутылки из коробочки — это foreach
Если каждую бутылку, пока в коробке не закончится пивасик — это while
Если каждую бутылку, пока протертых бутылок с пивасиком станет 4 — это тоже while
Если каждую бутылку, пока в коробке не закончится пивасик, но раз уж взял бутылку последнюю с молоком, то будь любезен протри — это do-while
Если с 3-й по 12-ю — это for
Если только с молоком — это мамка, а не батя
Ответ написан более трёх лет назад
Нравится 9 3 комментария
Аналогия с пивасиком как раз ему зайдёт))) только надо ещё разбавить нецензурными словами.
Вы, учитель года :))
iMaximus, видимо нет, автор просил для детей 3-х лет, я старался. А ответами он отметил варианты 18+, со всякими взрослыми словечками 🙂
Вообще, эти три цикла взаимозаменяемы, т.е. если есть программа, написана с помощью одного из них, то она всегда может быть переписана с помощью любого другого. Но по правилам хорошего стиля и для удобства рекомендации следующие:
for используется, когда число итераций известно (есть переменная или константа, которая определяет это количество).
while и do-while используются, когда число итераций заранее неизвестно.
while используется, когда существует возможность, что цикл не выполнится ни разу, а do-while следует использовать, если известно, что как минимум одна итерация всегда требуется.
Для примера:
for — выведите N чисел на экран (N определяет число итераций).
while — алгоритм Евклида для вычисления НОД (если одно из чисел 0, то итераций не будет)
do-while — реализация игры «Угадай число». (всегда требуется хотя бы одна попытка, то точное их число неизвестно).
Ответ написан более трёх лет назад
Комментировать
Нравится 4 Комментировать
Test automation engineer
Нам в школе так обьяснили:
while — в зависимости от условия тело цикла может быть не выполнено ни разу.
do while — тело цикла будет выполнено минимум один раз.
ну а for — будет выполняется для выбраных элементов последовательности (какие это будут элементы — указывается в условии). Тут можно задать периодичность, например, для каждого второго элемента.
Ответ написан более трёх лет назад
Комментировать
Нравится 3 Комментировать
Как — то, почитал я ответы коллег, и остался разочарован. Понятно, что вопрос не простой, а очень простой, но можно и по аккуратнее в изложении. В общем, мои 5 копеек.
Любой цикл — это кусок кода, который обычно называют телом цикла, и который мы желаем выполнить несколько раз. Количество повторений может быть заданно заранее, например: цикл от 0 до 10, зависеть от данных, например: для каждого элемента массива или зависеть от значения, которое мы в теле цикла вычисляем, например: пока f(x) > 0 выполнять. По крайней мере, во всех известных мне языках программирования, есть оператор досрочного выхода из цикла.
while. Цикл с предварительным условием. Выполняется пока условие истинно. Проверка происходит до исполнения тела цикла. Если условие изначально ложно, то тело не выполнится ни разу.
Если условие ни когда не станет ложным, то мы получим бесконечный цикл. Распространенные ошибки новичков, при использовании этого цикла:
— условие не зависит от переменных, которые изменяются в теле цикла, и оно всегда получается истинным
— условие ни когда не станет ложным, в силу его свойств, например: X * X >= 0 всегда верно
Пример на php:
$i = 1; while ($i
do . while. Цикл с постусловием. Отличие от предыдущего в том, что тело цикла исполняется хотя бы один раз, и после этого происходит проверка условия выхода из цикла. К типичным ошибкам предыдущего вида циклов добавляется то, что этот цикл гарантированно исполняется один раз, что не всегда желательно.
В этом примере цикл отработает один раз, не смотря на то, что условие ложно:
$i = 0; do < echo $i; >while ($i > 0);
for. Чаще всего этот оператор описывает цикл с фиксированным количеством повторений. Вот так он может выглядеть, например, для php:
for ($i = 1; $i
но есть языки, где этот — же оператор используется для описания цикла, перебирающего множество значений, например элементы массива. К возможным подводным камням этого вида циклов следует отнести порчу значения счетчика итераций. Изменять его, например для досрочного выхода из цикла, считается плохим стилем программирования, и в особо тяжелых случаях может приводить к трудно диагностируемым ошибкам.
Источник: qna.habr.com