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

PHP/Циклы

Любой PHP-код представляет собой совокупность определенных конструкций: операторов, циклов и функций.

Логические выражения, используемые в конструкциях языка PHP, в частности в циклах, были описаны на предыдущей странице, вернуться и почитать можно тут: Условные операторы.

Циклы [ править ]

Циклы необходимы, когда требуется повторить определенное/неопределенное количество раз набор операторов. Набор таких операторов называется телом цикла и выделяется фигурными скобками. Один проход цикла называется итерацией. Существуют четыре вида циклов, они представлены ниже.

Цикл с предусловием while [ править ]

Данная конструкция имеет вид

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

Итак, сначала вычисляется значение логического выражения. Если значение равно true, то выполняется тело цикла, в противном случае происходит выход из цикла.

Заметим, что если тело цикла представляет собой только один оператор, то допустима следующая запись без использования фигурных скобок

 while (логическое выражение) оператор1; ?> 
 $count = 7; while ($count  10)  print('*'); $count++; > ?> 

В данном примере мы инициализируем переменную $count значением 7. Затем в цикле, пока значение переменной меньше 10, выполняем две операции: печатаем на экран звездочку и увеличиваем значение переменной $count на 1. Рассмотрим пошагово:

Перед циклом инициализируем переменную $count = 7

Сравниваем значение переменной 7 < 10 - true ->заходим в цикл

увеличиваем значение переменной -> $count = 8

Снова сравниваем значение переменной 8 < 10 - true ->остаемся в цикле

увеличиваем значение переменной -> $count = 9

Сравниваем значение переменной 9 < 10 - true ->остаемся в цикле

увеличиваем значение переменной -> $count = 10

Сравниваем значение переменной 10 < 10 - false ->выходим из цикла

Таким образом, в результате работы программы на экран будет выведена строка: ***

Цикл с постусловием do while [ править ]

Данная конструкция имеет вид

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

Отличительной особенностью цикла do while является то, что значение логического выражения проверяется после каждого прохода цикла, это обеспечивает выполнение тела цикла хотя бы один раз. После очередной итерации проверяется, истинно ли логическое выражение, и, если это так, управление передается вновь на начало цикла.

Заметим, что если тело цикла представляет собой только один оператор, то допустима следующая запись без использования фигурных скобок

 do оператор1; while (логическое выражение); ?> 
 $count = 10; do  print('*'); $count++; > while ($count  10); ?> 

Инициализируем переменную $count значением 10. Заходим в цикл и выполняем две операции: печатаем на экран звездочку и увеличиваем значение переменной $count на 1. Значение переменной $count стало равным 11, проверяем условие ($count < 10) - false ->выходим из цикла. В результате работы программы на экране отобразится следующая строка: *

Цикл со счетчиком for [ править ]

Данная конструкция имеет вид

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

Цикл со счетчиком for применяется для выполнения тела цикла определенное число раз. Работа цикла начинается с выполнения инициализирующих команд(выполняются единожды). Далее проверяется условие цикла, если оно истинно(true), то выполняется тело цикла. Затем выполняются команды после итерации и снова проверяется условие цикла. Если оно ложно(false), происходит выход из цикла.

В результате работы следующего скрипта на экран будет выведена строка: 12345

Цикл перебора массивов foreach [ править ]

Данный цикл применим при работе с массивами, если требуется обработать каждый его элемент.

Сама конструкция имеет вид

 foreach ($массив as $обозначение)  инструкция; > ?> 
 foreach ($массив as $обозначение) оператор1; ?> 

Заметим, что $обозначение — это переменная, обозначающая просматриваемый элемент, мы вправе дать ей любое имя и обращаться к ней в теле цикла.

 $array = array(1, 2, 3, 4, 5); foreach ($array as $var) echo "$var "; ?> 

В данном скрипте мы сперва инициализируем массив, состоящий из пяти элементов(числа от 1 до 5), далее для каждого элемента выполняем печать на экран. В результате чего на экране получаем строку: 1 2 3 4 5

Конструкция break [ править ]

Конструкция, позволяющая прервать выполнение цикла в ходе очередной итерации.

 $x = 3; while (true)  $x--; if ($x  0)  echo 'Значение $x оказалось меньше нуля'; break; > echo "$x \n"; > ?> 

В данном примере переменная $x инициализирована значением 3. В бесконечном цикле будем уменьшать значение переменной на один и печатать его на экран, но если значение переменной окажется меньше нуля, то выведем поясняющий комментарий и выйдем из цикла.

Циклы могут быть вложенными, в таком случае используется break вместе с номером прерываемого цикла.

 while (. ) //внешний цикл  while (. ) //внутренний цикл  break; //Прервет выполнение внутреннего цикла break 2; //Прервет выполнение внешнего цикла > break; //Прервет выполнение внешнего цикла break 2; //Вызовет ошибку, поскольку текущий цикл не вложен ни в какой другой > ?> 

Конструкция continue [ править ]

Конструкция, позволяющая перейти к следующей итерации цикла.

 $array = array(1, 2, 3, 4, 5); foreach ($array as $var)  if ($var == 3) continue; echo "$var "; > ?> 

В данном скрипте мы сперва инициализируем массив, состоящий из пяти элементов(числа от 1 до 5), далее в цикле проверяем не равен ли текущий элемент трём и выполняем печать на экран. Если встретился элемент равный трём, то переходим к следующей итерации, то есть к следующему элементу. В результате чего на экране получаем строку: 1 2 4 5

Аналогично break, для continue можно указать уровень вложенности цикла.

Источник

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

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

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

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

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

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

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

Программный код цикла будет выполняться действие до тех пор, пока условие в цикле не вернёт 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, то есть при упоминании сразу действие цикла остановится.

Пример конструкции 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!

Источник

Читайте также:  Настроить atom для html
Оцените статью