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

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

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

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

<?phpwhile(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;}?>

В примере определяются две переменные: $ counter 1 и $ counter 2. Одна переменная увеличивается на 2, а другая уменьшается на 3. Цикл while выполняется, пока соблюдаются оба условия $ count 1 < $ max и $ count 2 > $ 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 на $incrementif($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 будет цикл do while. В данном случае условие цикла проверяется только после выполнения его тела. Это значит, что тело цикла выполнится хотя бы один раз.

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

<?phpdo {// инструкции} 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 цикл do—while , можно приобрести значение выражения без инициализации переменной $ random . Тело цикла выполняется перед тем, как проверяется условие. Тогда пример, приведенный выше, будет выглядеть следующим образом:

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *