Циклы while
и do-while
позволяют повторять блок кода, пока выполняется определенное условие. Они полезны, когда нужно выполнять одни и те же действия многократно, пока не будет достигнуто определенное состояние.
Цикл while
Цикл while
выполняет блок кода до тех пор, пока условие истинно (true
). Перед каждой итерацией цикл проверяет условие, и если оно ложно (false
), выполнение цикла прекращается.
Синтаксис:
while (условие) {
// Код, который выполняется, пока условие истинно
}
Пример:
int count = 1;
while (count <= 5) {
System.out.println("Счетчик: " + count);
count++; // Увеличиваем значение count на 1
}
Как это работает:
1. Проверяется условие count <= 5
.
2. Если условие истинно, выполняется код в блоке { }
.
3. После выполнения блока увеличивается count
.
4. Цикл снова проверяет условие.
5. Как только count
станет больше 5, условие станет ложным, и цикл завершится.
Этот цикл выведет:
Счетчик: 1
Счетчик: 2
Счетчик: 3
Счетчик: 4
Счетчик: 5
Цикл do-while
Цикл do-while
похож на while
, но есть одно важное отличие: блок кода выполнится хотя бы один раз, даже если условие изначально ложно. После выполнения блока кода проверяется условие, и, если оно истинно, цикл повторяется.
Синтаксис:
do {
// Код, который выполняется хотя бы один раз
} while (условие);
Пример:
int count = 1;
do {
System.out.println("Счетчик: " + count);
count++;
} while (count <= 5);
Этот код делает то же самое, что и предыдущий пример с while
, но с небольшим отличием: он гарантирует выполнение блока кода хотя бы один раз, даже если условие ложно с самого начала.
Различие между while
и do-while
while
проверяет условие сначала, и если оно ложно, цикл не выполнится ни разу.do-while
выполняет блок кода сначала, а затем проверяет условие. Поэтому блок кода гарантированно выполнится как минимум один раз.
Пример, иллюстрирующий различие:
int countWhile = 6;
while (countWhile <= 5) {
System.out.println("Цикл while: " + countWhile); // Не выполнится, так как условие ложно
}
int countDoWhile = 6;
do {
System.out.println("Цикл do-while: " + countDoWhile); // Выполнится один раз
} while (countDoWhile <= 5);
В этом примере цикл while
не выполнится, так как countWhile
больше 5. А цикл do-while
выполнится один раз, несмотря на то, что условие ложно с самого начала.
Подведение итогов
while
: выполняется, пока условие истинно; если изначально ложно, цикл не выполняется.do-while
: выполняет код хотя бы один раз, проверяя условие после первой итерации.
Оба цикла полезны для повторения операций, когда не знаешь заранее, сколько раз придется выполнить блок кода, и они позволяют управлять процессом в зависимости от выполнения условия.