Циклы while и do-while: наглядное сравнение с практическими примерами
Что такое циклы?
Цикл выполняет последовательность инструкций многократно, пока заданное условие истинно. Цикл состоит из тела и управляющего выражения. Условие проверяет, следует ли продолжать выполнение тела. Цель цикла — повторить один и тот же код нужное число раз.
Цикл while
While — самая простая структура цикла с предусловием (entry-controlled). Условие оценивается перед каждым выполнением тела. Если условие ложно с самого начала, тело не выполнится ни разу.
Цикл do-while
Do-while — цикл с постусловием (exit-controlled). Тело выполняется хотя бы один раз, затем проверяется условие. Если оно истинно, цикл повторяется.
Ключевые отличия
- While проверяет условие перед выполнением; do-while — после (гарантирует минимум одно выполнение).
- While — entry-controlled; do-while — exit-controlled.
- В while точку с запятой после условия не ставим; в do-while — ставим после
while (условие);. - While может не выполниться ни разу; do-while — всегда хотя бы раз.
- Инициализацию счётчика в while делают перед циклом; в do-while — можно и до, и внутри тела.
Синтаксис while
while (условие) { инструкции; }
Условие вычисляется; фигурные скобки обозначают тело цикла.
Синтаксис do-while
do { инструкции } while (выражение);
Сначала пишется тело, затем условие для Java, C или C++.
Как работает while (блок-схема)
- Начало цикла while.
- Оценка тестового выражения.
- Если истинно — выполнение тела.
- Если ложно — переход к инструкциям после цикла.
Как работает do-while (блок-схема)
- Начало do-while.
- Выполнение тела.
- Оценка условия.
- Если истинно — повторное выполнение тела.
- Если ложно — выполнение инструкций после цикла.
Пример while на C
#include <stdio.h>
#include <conio.h>
int main() {
int num = 1;
while (num <= 4) {
printf("%d\n", num);
num++;
}
return 0;
}
Вывод:
1 2 3 4
Переменная num инициализируется 1. Цикл печатает и увеличивает её, пока не станет 4.
Пример do-while на C
#include <stdio.h>
#include <conio.h>
int main() {
int num = 1;
do {
printf("%d\n", 2 * num);
num++;
} while (num <= 4);
return 0;
}
Вывод:
2 4 6 8
Таблица умножения на 2. Тело выполняется сначала, потом проверяется условие.
Наглядное сравнение
| While | Do-While |
|---|---|
| Проверяет условие, потом выполняет | Выполняет хотя бы раз, потом проверяет |
| Entry-controlled | Exit-controlled |
| Точка с запятой после условия не нужна | Точка с запятой после условия обязательна |
| Скобки опциональны для одной инструкции | Скобки всегда нужны |
| Условие в начале | Условие после блока |
| Может выполниться 0 раз | Выполняется минимум 1 раз |
Что выбрать?
Используйте while, если первая итерация не обязательна или число итераций заранее неизвестно.
Используйте do-while, когда тело должно выполниться минимум один раз (например, меню, где выбор пользователя определяет выход).
Язык C
- Выражения, операторы и блоки в C#: подробное руководство с примерами
- Циклы while и do-while в C#: синтаксис, примеры и лучшие практики
- Циклы while и do-while в C++: освоение повторений в коде
- Циклы while и do-while в C: практические примеры
- Освоение циклов while и do-while в Java: пошаговое руководство
- Цикл do-while в C++: синтаксис, примеры и вложенные циклы
- C++ Struct vs Class: ключевые отличия, синтаксис и лучшие сценарии использования
- Наследование и полиморфизм в C#: практические примеры кода
- Циклы while и do-while: наглядное сравнение с практическими примерами
- Двигатели постоянного и переменного тока: ключевые отличия и руководство по выбору