Циклы. While, do while, for, чем отличаются?
while — выполняется пока заданное выражение правда (проверка перед одним циклом выполнения)
while do — выполняется пока заданное выражение правда (проверка после одного цикла выполнения)
for — создано для выполнения кода n-ное количество раз
Вообще недавно видел забавную картинку, которая хорошо это дело демонстрирует
Спойлер
Ярослав Иванов @space2pacman
Rikonardo, ну вы то че))while и do while одинаковые. Разница в том что последний запускает тело цикла без проверки на первой итерации.
Ярослав Иванов, ну по крайней мере нам на курсах c# рассказали, что do while проводит проверку после пробега кода внутри (итерации), а while сначала проверяет, а потом выполняет
Ярослав Иванов @space2pacman
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
Если только с молоком — это мамка, а не батя
Ответ написан более трёх лет назад
Нравится 10 3 комментария
Ярослав Иванов @space2pacman
Аналогия с пивасиком как раз ему зайдёт))) только надо ещё разбавить нецензурными словами.
Вы, учитель года :))
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
но есть языки, где этот — же оператор используется для описания цикла, перебирающего множество значений, например элементы массива. К возможным подводным камням этого вида циклов следует отнести порчу значения счетчика итераций. Изменять его, например для досрочного выхода из цикла, считается плохим стилем программирования, и в особо тяжелых случаях может приводить к трудно диагностируемым ошибкам.
Какой оператор цикла желательно использовать, если известно число повторений тела цикла? repeat until
while do
for := to do
2. Используется оператор for i:= -10 to 10 do…
После завершения выполнения тела цикла i = .
3. Цикл в фрагменте программы
p:=1;
repeat
p:=p*0.1
until p>0.1;
будет исполнен:
1 раз
2 раза
бесконечное число раз
0 раз
3 раза
4. Цикл в фрагменте программы
a:=1;
b:=1;
while a+b begin
a:=a+1; b:=b+2
end;
выполнится:
0 раз
3 раза
2 раза
1 раз
бесконечное число раз
5. Какой оператор цикла желательно использовать для записи алгоритмической конструкции, изображённой на схеме?
while do
for := to do
repeat until
6. Какой оператор цикла желательно использовать, если известно условие выхода из цикла?
repeat until
for := to do
while do
7. Определите, какое значение будет выведено на экран в результате выполнения приведенной ниже последовательности операторов:
a:=1; b:=1;
while a write (b)
32
256
64
128
8. Используется оператор for i:= -5 to 9 do…
При первом выполнении тела цикла i = .
9. Чему равно значение переменной s после выполнения следующего фрагмента программы
Какой оператор цикла желательно использовать, если известно число повторений тела цикла?
2. Используется оператор for i:= -10 to 10 do…
После завершения выполнения тела цикла i = 10
3. Цикл в фрагменте программы
бесконечное число раз
4. Цикл в фрагменте программы
2 раза
бесконечное число раз
5. Какой оператор цикла желательно использовать для записи алгоритмической конструкции, изображённой на схеме?
НЕТ СХЕМЫ. ОТВЕТИТЬ НА ВОПРОС НЕВОЗМОЖНО.
6. Какой оператор цикла желательно использовать, если известно условие выхода из цикла?
7. Определите, какое значение будет выведено на экран в результате выполнения приведенной ниже последовательности операторов:
64
8. Используется оператор for i:= -5 to 9 do…
При первом выполнении тела цикла i = -5
9. Чему равно значение переменной s после выполнения следующего фрагмента программы
Фрагмента программы нет! Задание решить нельзя!
Спасибо большое
Новые вопросы в Информатика
а = input(«Введи час: «) print(«В хвилині — «,(а*60),» секунд») print(«В годині — «,(а*3600),» секунд») print(«В добі — «,(а*(3600*24)),» секунд») pri … nt(«В місяці — «,(а*(3600*24)*30),»або»,»(а*(3600*24)*31)»,» секунд») print(«В році — «,(а*(3600*24)*365),» секунд») что здесь не так
как выйти из сюжетного режима в gta v
решите без генератора чисел и def если можно Задание 1Создайте программу «Фирма». Нужно хранить информацию о человеке: ФИО, телефон, рабочий email,наз … вание должности, номер кабинета, skype. Требуетсяреализовать возможность добавления, удаления, поиска, замены данных. Используйте словарь для храненияинформации.Задание 2Создайте программу «Книжная коллекция». Нужнохранить информацию о книгах: автор, название книги,жанр, год выпуска, количество страниц, издательство.Требуется реализовать возможность добавления, удаления, поиска, замены данных. Используйте словарь дляхранения информации.
1) Як створити презентацiю, використовуючи шаблони? 2) Якi режими роботи передбаченi 6 Power Point? 3) Якими способами можна вставити у презентацію т … аблиці, діаграми, малюнки, організаційні діаграми? 4) Як надами елементові презентації керуючої дi? 5) Як задати ефекти анімацiї об’єктам презентації? З яких об’єктів складається комп’ютерна публiкацiя? 7) Що таке шаблон, 8) Що таке макем?
УМОЛЯЮ СРОЧНО! 7. Какой оператор цикла желательно использовать, если известно условие выхода из цикла?
8. Цикл в фрагменте программы
a:=1;
b:=1;
while a+b begin
a:=a+1; b:=b+2
end;
выполнится:
5)бесконечное число раз
9. Используется оператор for i:= -10 to 10 do…
После завершения выполнения тела цикла i = .
Смотреть ответ
8.(5. бесконечное количество раз)
Если вы хотите отблагодарить меня, то поставьте пожалуйста этому ответу «Лучший».
Новые вопросы в Информатика
а = input(«Введи час: «) print(«В хвилині — «,(а*60),» секунд») print(«В годині — «,(а*3600),» секунд») print(«В добі — «,(а*(3600*24)),» секунд») pri … nt(«В місяці — «,(а*(3600*24)*30),»або»,»(а*(3600*24)*31)»,» секунд») print(«В році — «,(а*(3600*24)*365),» секунд») что здесь не так
как выйти из сюжетного режима в gta v
решите без генератора чисел и def если можно Задание 1Создайте программу «Фирма». Нужно хранить информацию о человеке: ФИО, телефон, рабочий email,наз … вание должности, номер кабинета, skype. Требуетсяреализовать возможность добавления, удаления, поиска, замены данных. Используйте словарь для храненияинформации.Задание 2Создайте программу «Книжная коллекция». Нужнохранить информацию о книгах: автор, название книги,жанр, год выпуска, количество страниц, издательство.Требуется реализовать возможность добавления, удаления, поиска, замены данных. Используйте словарь дляхранения информации.
1) Як створити презентацiю, використовуючи шаблони? 2) Якi режими роботи передбаченi 6 Power Point? 3) Якими способами можна вставити у презентацію т … аблиці, діаграми, малюнки, організаційні діаграми? 4) Як надами елементові презентації керуючої дi? 5) Як задати ефекти анімацiї об’єктам презентації? З яких об’єктів складається комп’ютерна публiкацiя? 7) Що таке шаблон, 8) Що таке макем?
Какой оператор цикла желательно использовать если известно условие выхода из цикла
Выполняет тело цикла z для каждого значения переменной итерации x , меняющейся в пределах диапазона y . Обычно по крайней мере одно выражение в теле цикла z использует значение x , что позволяет получать разные результаты в повторяющихся расчетах.
• x — любое допустимое имя переменной.
• y — значение или последовательность значений. Чаще всего y — это переменная диапазона, но можно также использовать вектор с результатами в виде серий скалярных значений, которые x предполагает в свою очередь.
• z — любое допустимое выражение или последовательность выражений. Допускается, например, локальное назначение или последовательность шагов программы.
Смотрите видео о циклах for :
Дополнительные сведения
• Для ускорения ввода можно ввести только имя оператора for и нажать клавиши Ctrl+J. Это имя будет преобразовано в полный вид оператора со всеми его местозаполнителями.
• Используйте цикл for в тех случаях, когда известно заранее, сколько раз необходимо выполнить тело цикла.
• При необходимости можно запрограммировать преждевременный выход из цикла (до выполнения условия его завершения) или пропуск определенной итерации и переход на начало следующей. Управлять выполнением цикла можно с помощью операторов break и continue .