Ответ
Основное отличие — в порядке выполнения проверки условия.
Цикл while (цикл с предусловием)
- Порядок: Сначала проверяется условие. Если оно
true, выполняется тело цикла. - Количество итераций: От 0 до бесконечности (может не выполниться ни разу).
- Синтаксис (Java/C#/JS):
while (condition) { // Тело цикла } - Пример:
int count = 10; while (count < 10) { // Условие false с первого раза System.out.println("Этот код никогда не выполнится."); }
Цикл do-while (цикл с постусловием)
- Порядок: Сначала однократно выполняется тело цикла, затем проверяется условие. Если оно
true, цикл повторяется. - Количество итераций: От 1 до бесконечности (гарантированно выполнится хотя бы один раз).
- Синтаксис (Java/C#/JS):
do { // Тело цикла } while (condition); - Пример:
int count = 10; do { System.out.println("Этот код выполнится 1 раз, несмотря на условие."); count++; } while (count < 10); // Условие проверяется ПОСЛЕ выполнения
Когда использовать?
while— когда количество итераций неизвестно, и возможно нулевое выполнение (например, чтение данных до маркера конца).do-while— когда действие нужно выполнить минимум один раз, а затем, возможно, повторить (например, меню выбора в консоли).
Ответ 18+ 🔞
Давай разжую тебе эту разницу между while и do-while, а то смотрю, глаза у тебя уже стеклянные становятся, как у пьяного хомяка.
Представь, что это два охранника на входе в клуб. Один — while, другой — do-while.
Охранник while — принципиальный пидарас.
Он стоит на входе и сразу тебя проверяет: «А ты в списке? А ты в галстуке? А ты не пьяный?». Если хоть одно условие не проходит — пошёл нахуй, даже внутрь не зайдешь. Тело клуба (цикла) может так и остаться для тебя невиданной диковинкой.
int твояТрезвость = 0; // 0 - пьян в говно
while (твояТрезвость > 5) { // Условие с первого раза false
System.out.println("Тебя никогда не впустят, мудак.");
}
Видишь? Ты пьяный, условие не прошёл — и всё, сиди на улице, бзди в сугроб. Итераций: от 0 до овердохуища.
Охранник do-while — хитрая жопа.
Этот чувак сначала даёт тебе проскочить внутрь на разок, оттопыриться, налажать, и только потом, когда ты уже у барной стойки, хватает за шкирку и спрашивает: «Слушай, а ты вообще в списке?». Если нет — вышвыривает. Но ты-то уже успел один стаканчик пригубить!
int твояТрезвость = 0; // Опять пьян
do {
System.out.println("Ты уже внутри! Глотнул пивка! Хе-хе!");
твояТрезвость++;
} while (твояТрезвость > 5); // Проверка только ПОСЛЕ первого захода
И что выводит? Правильно, «Ты уже внутри! Глотнул пивка!». Потому что тело выполнилось гарантированно один раз, а уж потом пошла проверка. Итераций: от 1 до овердохуища.
Короче, когда что брать?
while— когда ты не уверен, надо ли вообще лезть. «Читай строки из файла, пока не кончатся». А вдруг файл пустой? Тогда и читать нихуя не надо.do-while— когда хоть раз, но сделать надо обязательно. Классика — менюшка в консоли: «1 — выйти, 2 — сохраниться». Ты сначала показываешь пользователю это меню (тело цикла), а потом спрашиваешь: «Ну чё, повторить?». Один раз он его точно увидит, волнение ебать.
Вот и вся магия, ёпта. Не while, так do-while. Главное — мозги включи, а то так и будешь в бесконечный цикл попадать, пока комп не накрылся медным тазом.