Бесконечный цикл в php как сделать

Цикл while и for в PHP

В языке программирования PHP существует несколько способов сделать цикл. Одни из самых популярных — это while и for. Продемонстрируем их использование на практике.

Цикл while

Цикл while( условие ) выполняется только в том случае, если условие является истиной (как будто при проверке if( условие )). Очевидно, что при таком способе работы цикла его условие должно изменяться с каждой итерацией, иначе это будет бесконечный цикл. Продемонстрируем использование цикла на практике:

Как только $i станет равной 4, то произойдёт выход из цикла из-за того, что значение в скобках while( 4 является ложью.

Обратите внимание, что в циклах принято обозначать переменные, которые изменяются с каждой итерацией, буквами: i, j, k.

Если бы в примере не было строчки $i++;, то цикл выполнялся бы бесконечно, потому что $i никогда бы не стала больше 3.

Цикл for

Теперь разберём более сложный, но популярный цикл for( начальные параметры; условие завершения цикла; действие на каждой итерации ). Этот цикл чаще встречается в проектах, чем while. Он имеет не одно, а сразу три условия. Попробуем переписать предыдущий пример, но используем цикл for:

Такой цикл занимает меньше строк, чем цикл с while, потому что включает в скобки for( ) задание начального значения переменной и действия, которое необходимо с ней сделать при новой итерации цикла. Результат выполнения такого цикла будет аналогичен результату из предыдущего примера. При выполнении такого кода на экране мы увидим:

В скобках цикла for( ) может стоять несколько переменных, несколько параметров и несколько действий, которые надо сделать с несколькими переменными. Такая теоретическая возможность есть, но на практике она никогда не встречается. Потому что чем легче — тем лучше. Но для образовательных целей приведём пример:

Источник

Урок 6. Циклы в PHP

Сейчас мы приступим к одной из важнейших тем в изучении php — это циклы. Они используются практически на каждом сайте, где выводятся какие-либо динамические данные.

Цикл — это блок кода, который повторяет определённое действие (инструкцию), пока не будет выполнено условие. Например, выводить строку Привет, мир! пока количество действий (выводов строки) не достигнет 5. Каждое подобное исполнение (одно и более повторений) называется итерацией.

 // переменные, с которыми будем работать 
$num = 1;
$hello = "Привет, мир!";

// начинаем цикл
while ($num echo "$hello\n";
echo "Итерация номер: $num\n";

$num++; // Внимание! Тут увеличиваем количество показов. Теперь +1
// И снова возвращаемся в начало цикла. Проверять, не достигло ли $num значения 5
// Если $num не увеличивать с каждым ходом цикла, то цикл будет бесконечным!
>
?>

Демонстрация Скачать исходники
Каждый цикл делится на две составные части: условие выполнения цикла (когда, при каких условиях, до каких пор) и действие, программный код, который каждый раз выполняется, если цикл не закончен. Действие может состоять из одной и более инструкции, все из которых должны быть заключены в фигурные скобки <>.

Читайте также:  Программирование с нуля kotlin

Программный код цикла будет выполняться действие до тех пор, пока условие в цикле не вернёт FALSE. После этого исполнение кода со строки, расположенной уже после цикла. Иногда, по ошибке, можно сделать цикл, который не будет иметь логического конца и всегда будет TRUE. Такой цикл называют — бесконечным. Чтобы избежать создания подобного некорректного цикла следует внимательно проработать условие.

Цикл с предусловием while

В цикле while есть предусловие, которое при возвращении TRUE выполняет действие в теле цикла и возвращается к предусловию. Цикл работает до тех пор, пока предусловие не вернёт FALSE.

while (логическое выражение) 
инструкция;

В качестве тела цикла выступает инструкция. В теле может содержатся один или несколько операторов. Перейдём к примеру.

 // переменные, с которыми будем работать 
$num = 1;

// начинаем цикл
while ($num echo "$num";

$num++; // Внимание! Тут увеличиваем количество показов. Теперь +1
// И снова возвращаемся в начало цикла. Проверять, не достигло ли $num значения 5
// Если $num не увеличивать с каждым ходом цикла, то цикл будет бесконечным!
>

// Выведет "12345"
?>

Цикл с постусловием do while

Данный цикл похож в своей работе на while, но отличается только тем, что проверка условия проходит после проработки инструкции (действия). То есть как минимум цикл проработает 1 раз.

do 
тело цикла;
>
while (логическое выражение);

Теперь прошлый пример рассмотрим через цикл do while.

 // переменные, с которыми будем работать 
$num = 1;

// начинаем цикл
do echo "$num";

$num++;
> while ($num
// Выведет "12345"
?>

Как видите, результат получился тот же самый. Однако, если переменная $num сразу будет не соответствовать условию, например, будет равно 11, то 1 раз цикл всё равно проработает. Данный цикл используется редко, но всё же подобная конструкция востребована.

Цикл со счетчиком for

Цикл for также как все другие циклы выполняет действие определённое количество раз. Однако отличается сложной конструкцией, количеством аргументов и сравнительно большими возможностями.

for (инициализирующие команды; условие; команды после итерации) < 
тело_цикла;
>

Цикл начинает работу с того, что инициализирует команды. Эта часть происходит в самом начале и проделывается только один раз. В ней мы, например, заносим переменные и их значения (переменных может быть несколько), которые в последствии будут обрабатываться: увеличиваться значение с каждым ходом цикла, сравниваться и так далее. Потом проверяется условие. Если оно истинно (true), то прорабатывается тело цикла. После проработки тела проделываются команды после итерации (хода цикла). В конце уже идёт возвращение к условиям, если истинно, то телу цикла, командам после итерации и так далее до победного.

Код PHP (несколько примеров)

 for ($x=0; $x // Выводит 0123456789 

// можно совместить условие и команды после итерации
for ($y=0; $y++ <10;) echo $y;
// Выводит 12345678910

// можно задать несколько переменных, условий, команд.
// Но они должны быть через запятую!
for ($a=0, $b=0; $a // Выводит 0123456789

// Любопытный пример
for($c=0,$d=0,$t="Zzz"; $c $t=$t.".";
echo $t;
>
// Выводит Zzz.Zzz..Zzz. Zzz.
?>

Цикл перебора массивов foreach

Данный вид цикла используется для обработки массивов. Появился с PHP 4.

foreach (массив as $ключ=>$значение) 
команды;

Команды циклически выполняются для каждого элемента массива, при этом очередная пара ключ=>значение оказывается в переменных $ключ и $значение. Пример работы цикла foreach:

 $capitals["Россия"] = "Москва"; 
$capitals["Украина"] = "Киев";
$capitals["Беларусь"] = "Минск";
$capitals["Казахстан"] = "Астана";
foreach ($capitals as $key => $value) echo "

$value - $key

";
>
?>

Москва — Россия
Киев — Украина
Минск — Беларусь
Астана — Казахстан
Но можно вывести только значения. Смотрим пример ниже

 $capitals["Россия"] = "Москва"; 
$capitals["Украина"] = "Киев";
$capitals["Беларусь"] = "Минск";
$capitals["Казахстан"] = "Астана";

foreach ($capitals as $value) echo "$value ";
>
?>

Конструкция break

Периодически бывает, что нужно усложнить логику цикла и в какие-то его моменты, при определённом значении, выполнить дополнительные действия. Для таких случаев есть конструкция break, которая осуществляет выход из цикла. У неё есть один необязательный параметр — число, указывающее определённую вложенность цикла, то есть когда конструкция будет запущена. По умолчанию он равен 1, то есть при упоминании сразу действие цикла остановится.

Читайте также:  Export java home windows

Пример конструкции break:

 $x=0; 

while ($x++ <10) <
if ($x==3) break;
echo "

$x

";
>
// Когда $x равен 3, цикл прерывается

// выведет "12"
?>

Конструкция continue

Конструкция continue нужна для немедленного прекращения текущей итерации цикла и переходу к следующей (если в цикле подразумевается предусловие). Как и для break, можно указать условие вложенности цикла, при котором конструкция вступит в действие.

Пример конструкции break:

 $a=0; 

while ($a++ <5) <
if ($a==3) continue;
echo "$a";
>
// Цикл пропустит третью итерацию

// Выведет "1245" Значение 3 будет пропущено.
?>

Конструкция goto

goto — оператор безусловного перехода. При упоминании goto и названия метки идёт поиск самой метки, куда нужно перейти. Сама метка ставится после оператора и имеет вид название: .

goto название_метки; // указываем желаемую метку 
echo 'hello';

название_метки: // место перехода
echo 'world';

Пример goto

 $a = 0; 

for ($a = 0; $a < 10; $a++) if ($a == 5) // если значение переменной $a равно 5
goto end; // то переходим к выполнению инструкций следующих за меткой
echo "$a";
>
echo 'после цикла - до метки'; // инструкция не будет выполнена

end:
echo 'После метки';
?>

Спасибо за внимание и удачи в изучении php!

Источник

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

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

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

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

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

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

Читайте также:  Как поставить на фон картинку в HTML

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

 $min) < echo "count1: $count1; count2: $count2 
"; $ 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 :

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 полностью , а лишь пропускает оставшуюся часть тела цикла. Приведенный ниже пример демонстрирует это:

while ($count < $max) < $counter += $increment; // увеличивает $payer на $increment if ($count >= 10 && $count "; continue; >

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

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

Цикл do-while в PHP

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

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

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

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

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

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

Сергей Бензенко автор-переводчик статьи « How to use while, Do While loop »

Дайте знать, что вы думаете по этой теме материала в комментариях. За комментарии, отклики, подписки, лайки, дизлайки огромное вам спасибо!

Источник

Оцените статью