Операторы цикла
Операторы цикла задают многократное исполнение операторов в теле цикла. В PHP определены 4 разных оператора цикла:
цикл с предусловием:
while(condition)
{
statements;
}
цикл с постусловием:
do
{
statements;
} while(condition);
итерационный цикл:
for(expression1;expression2;expression3)
{
statements;
}
итерационный цикл foreach:
foreach (array as [$key =>] $value)
{
statements;
}
Если 3 первых оператора цикла берут свое начало от С-подобных языков, то последний оператор позаимствован у языка Perl
Оператор while называется оператором цикла с предусловием. При
входе в цикл вычисляется выражение условие, и, если его значение
отлично от нуля, выполняется тело цикла. Затем вычисления выражения
условия и операторов тела цикла выполняется до тех пор, пока значение
выражения условия не станет равным нулю. Оператором while удобно
пользоваться для просмотра всевозможных последовательностей, если в
конце них находится заранее известный символ. (Это очень удобно в C++,
к примеру для определения длины строки, поскольку в С++, по
определению, строка есть последовательность символов типа char,
заканчивающаяся нулевым символом).
Пример простейшего цикла while:
$var = 5;
$i = 0;
while(++$i <= $var)
{
echo($i); echo(' ');
}
?>
Для выхода из цикла применяется оператор break. При обнаружении
этого оператора текущая итерация цикла прекращается, и последующие
итерации не происходят. При выполнении следующего примере, несмотря на
то, что переменная $var = 7, в окне браузера появятся цифры от 1 до 3.
$var = 7;
$i = 0;
while(++$i <= $var)
{
echo($i);
echo(' ');
if($i==3)break;
}
?>
Иногда бывает нужно прервать только текущую итерацию, и перейти сразу к следующей. Для этого применяется оператор continue:
$var = 7;
$i = 0;
while(++$i <= $var)
{
if($i==5)
{
continue;
}
echo($i);
echo(' ');
}
?>
Операторы цикла/ Do…while
Этот оператор называется оператором цикла с постусловием. При
входе в цикл в любом случае выполняется тело цикла (т.е. цикл всегда
будет выполнен хотя бы один раз), затем вычисляется условие, и если оно
не равно 0, вновь выполняется тело цикла. В нижеследующем примере ноль
всегда будет добавлен в список, независимо от условия (++$i <=
$var):
$var = 5;
$i = 0;
do
{
echo($i); echo(' ');
}
while(++$i <= $var)
?>
Операторы цикла/ For
Как уже говорилось, итерационный цикл имеет следующий формат:
for(expression1;expression2;expression3)
{
statements;
}
Здесь expression1 (инициализация цикла) – последовательность
определений и выражений, разделяемая запятыми. Все выражения, входящие
в инициализацию, вычисляются только один раз при входе в цикл. Как
правило, здесь устанавливаются начальные значения счетчиков и
параметров цикла. Смысл выражения-условия (expression2) такой же как и
у циклов с пред- и постусловиями. При отсутствии выражения-условия
предполагается, что его значение всегда истинно. Выражения expression3
вычисляются в конце каждой итерации после выполнения тела цикла.
В следующем скрипте, мы по традиции выведем числа от 0 до 5:
$var = 5;
$i = 0;
for ($i = 0; $i <= $var; $i++)
{
echo($i);
echo(' ');
}
?>
|