Как использовать циклы while и do-while

В некоторых случаях необходимо выполнять код до тех пор, пока не будет достигнут нужный результат. Для этого PHP предоставляет циклы while, for и foreach.

Синтаксис цикла while в PHP

Синтаксис цикла while:

<?php
while (condition) {
// инструкции
}
?>

Пример использования цикла while в PHP:

<?php
$i = 0;
while($i < 10) {
echo "$i, ";
$i++;
}
?>

В примере цикла while в php, приведенном выше, сначала инициализируется переменная счётчика $i значением 0.

Условие цикла while – это $i < 10. Это означает, что мы проверяем, меньше ли переменная, чем 10.

Всё, что заключено в фигурные скобки – это инструкции (тело) цикла. Они повторяются до тех пор, пока условие возвращает значение true. В примере, приведенном выше, $i выводится на экран, а затем переменная счётчика увеличивается на 1. Это важно чтобы условие цикла, в конце концов, перестало соблюдаться. Если условие цикла соблюдается всегда, например, потому что вы забыли увеличить переменную счётчика $i, тогда скрипт войдёт в бесконечный цикл. К счастью, через некоторое время PHP прекратит выполнение вашего скрипта.

Вы можете сделать как условие цикла, так и тело цикла сколь угодно сложными. Например, использовать while внутри while php, использовать php while для перебора массива (array) или определить более одной переменной счётчика:

<?php
$counter1 = 0;
$counter2 = 0;
$min = -20;
$max = 30;
while ($count1 < $max && $count2 > $min) {
echo "count1: $count1; count2: $count2 <br>";
$ counter1 += 2; // Сокращённое выражение для $counter1 = $counter1 + 2;
$counter2 -= 3; // Сокращённое выражение для $count2 = $count2-3;
}
?>

В примере определяются две переменные: $counter1 и $counter2. Одна переменная увеличивается на 2, а другая уменьшается на 3. Цикл while выполняется, пока соблюдаются оба условия $count1 < $max и $count2 > $min.

Влияние ключевых слов break и continue на цикл

С помощью команды break можно прервать процесс выполнения цикла while в PHP. Допустим, мы ищем определённого пользователя. Тогда можно пройти по всем пользователям в цикле while. Если найдём нужного пользователя, то остановим цикл с помощью ключевого слова break.

Простой пример использования ключевого слова break :

<?php
$max = 30;
$count = 0;
$increment = 2;
while ($count < $max) {
if ($count == 10) {
echo "Останавливаемся на числе 10";
break;
}
echo "$count,";
$counter += $increment; // увеличивает $count на значение $increment
}
?>

Этот код перебирает числа по возрастанию от 0 до $max = 30, прибавляя к переменной $count значение $increment, другими словами число 2. Но если переменная $count будет равна 10, произойдет выход из цикла while в php.

Ключевое слово continue не завершает цикл while в php полностью, а лишь пропускает оставшуюся часть тела цикла. Приведенный ниже пример демонстрирует это:

<?php
$max = 30;
$count = 0;
$increment = 2;
while ($count < $max) {
$counter += $increment; // увеличивает $payer на $increment
if ($count >= 10 && $count <= 15) {
echo "Число между 10 и 15 <br>";
continue;
}
echo "$count <br> <br>";
}
?>

Этот цикл начинается с 0 и увеличивает счётчик до значения $max. Переменная $counter всегда увеличивается на значение переменной $increment. То есть принимает значения 0, 2, 4 и т.д.

Если переменная $count имеет значение между 10 и 15, на экран будет выведен текст и оператор continue пропустит остальные выражения в теле цикла. В результате мы видим, что числа 10, 12 и 14 не выводятся.

Цикл do-while в PHP

Небольшой модификацией while является цикл dowhile. В данном случае условие цикла проверяется только после выполнения его тела. Это значит, что тело цикла выполнится хотя бы один раз.

Синтаксис цикла do-while:

<?php
do {
// инструкции
} while (condition);
?>

Предположим, что мы хотим сгенерировать случайное число, которое должно быть либо между 0 и 10, либо между 20 и 30. Согласно определению функции rand ($min, $max), можно случайным образом сгенерировать число между $min и $max:

<?php
$random = rand (0, 30);
while ($random > 10 && $random < 20) {
$random = rand (0, 30);
}
echo "Наше случайное число: $random";
?>

Используя php цикл dowhile, можно получить значение выражения без инициализации переменной $random. Тело цикла выполняется перед тем, как проверяется условие. Тогда пример, приведенный выше, будет выглядеть следующим образом:

<?php
do {
$random = rand (0, 30);
} while ($random > 10 && $random < 20);
echo " Наше случайное число: $random";
?>

Новичка цикл do-while может слегка сбить с толку. Если вы до конца не понимаете его цели, то это не проблема. Циклы do-while редко используются на практике.

Пожалуйста, оставьте свои комментарии по текущей теме статьи. За комментарии, дизлайки, лайки, отклики, подписки огромное вам спасибо!

Данная публикация является переводом статьи «How to use while, Do While loop» , подготовленная редакцией проекта.

Меню
Posting....