Цикл while позволяет повторять выполнение некоторых действий (инструкций) определенное количество раз.
Каждый цикл состоит из двух основных частей:
- логическое выражение
- инструкция
Логическое выражение определяет когда должно быть остановлено исполнение цикла. Инструкцией является фрагмент программного кода, выполняющий необходимые действия. Инструкция может быть одна или несколько и будет исполняться до тех пор, пока пока логическое выражение цикла возвращает значение TRUE и завершается когда логическое выражение не вернет значение FALSE (прекращение цикла).
Синтаксис цикла с предусловием:
while (логическое_выражение) инструкция;
Примеры использования:
$i = 1; while ($i <= 10) { echo $i; $i++; }
Цикл будет исполняться 10 раз, так как кол-во циклов задается переменной $i, значение которой при каждом цикле увеличивается на единицу ($i++) при условии завершения цикла $i <= 10.
12345678910
Вывод нечетных чисел:
$i = 1; while ($i <= 10) { echo $i; $i+=2; }
13579
Бывают ситуации, когда цикл должен прерваться. Для этого у нас есть возможность управлять ими при помощи оператора break.
Пример:
$i = 5; while($i < 1000){ echo $i; $i++; if($i == 10) { break; } }
56789
Оператор break выбрасывает нас из цикла при возникновении условия $n == 10, при этом счет начинается с 5 ($i = 5).
Оператор continue (продолжить), перебрасывает нас обратно к условию. Этот пример, выведет все числа кроме числа 10.
$i = 0; while($i < 30){ $i++; if($i == 10) continue; echo $i; }
1234567891112131415161718192021222324252627282930
Так же возможно применение цикла в цикле, например для построения таблицы умножения:
echo "<table border='1'>"; $i = 2; $x = 1; $n = 1; while ($n <= 8) { $x++; $n++; echo "<td>"; while ($i <= 9) { echo $x." * ".$i." = ".$i * $x."<br>"; $i++; } $i=2; echo "</td>"; } echo "</table>";
Цикл do while аналогичен циклу while, с тем отличием, что логическое выражения проверяется в конце, а не в начале.
Таким образом, тело цикла выполняется хотя бы один раз. Синтаксис цикла с постусловием следующий:
do { тело_цикла; } while (логическое_выражение);
Данная разновидность цикла полезна, когда тело цикла должно быть исполнено хотя бы один раз, независимо от значения логического выражения.
Пример:
$i = 1; do { echo $i; $i++; } while ($i <= 10);
12345678910