Как использовать циклы 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 является цикл do—while. В данном случае условие цикла проверяется только после выполнения его тела. Это значит, что тело цикла выполнится хотя бы один раз.

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

<?php

do {

$random = rand (0, 30);

} while ($random > 10 && $random < 20);

echo " Наше случайное число: $random";

?>

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




Рекомендуем почитать

 

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


Ваше имя:


Комментарий:


Введите: Картинка