Печать
Категория: Уроки PHP
Просмотров: 2789

Этот урок PHP посвящен организации циклов. При необходимости повторного выполнения одного и того же фрагмента кода несколько раз часто пользуются операторами циклов. В PHP существуют четыре вида оператора циклов: for, while, do-while и foreach. Для того чтобы усвоить операторы циклов нужно иметь сведения о логических выражениях, TRUE и FALSE >>.

Вначале ознакомимся с оператором for. Рассмотрим, как for влияет на ход исполнения программы.

Структура оператора for:

for(инициализация; условие; модификация)
оператор;

В ходе выполнения программы, в операторе for:

1) выполняется часть «инициализация». В части «инициализация» переменным присваиваются начальные значения или ранее объявленным переменным присваиваются новые значения;

2) после выполнения части «инициализация», происходит проверка части «условие». В части условия должно быть логическое выражение;

3) при значении FALSE части «условие» выполнение оператора for прекращается и начинается выполнение оператора, идущего после оператора for. При значении TRUE части «условие» выполняется часть «оператор». Часть «оператор» еще называют телом цикла.

4) после выполнения тела цикла выполняется часть «модификация». В этой части выполняется изменение значений переменных и осуществляется выполнение пункта 3).

Схема управляющей структуры for:

Пример использования оператора for:
Файл for1.php

<?php
$n=10;
for($k=1; $k<=$n; $k++)
echo "Строка $k.<br>";
?>

В вышеприведенном примере использован оператор инкремента ++, который увеличивает значение аргумента на единицу. В нашем примере $k++ эквивалентно $k=$k+1, но выполняется быстрее. Вначале переменной $k присваивается значение 1, затем, после вывода на экран, его значение каждый раз увеличивается на 1. Когда значение $k становится равным 11, цикл завершается.

Заметим, что после выхода из цикла значение $k равно 11, чем можно воспользоваться при необходимости.

Напомним, что в PHP существует и оператор декремента --, который уменьшает значение аргумента на единицу. То есть $k-- эквивалентно $k=$k-1.

Из структуры оператора for видно, что если понадобится бесконечный цикл, то в части «условие» нужно прописать такое логическое выражение, чтобы его значение всегда было TRUE, пример:

Файл for2.php

<?php
for(;1;)
echo "Этот цикл бесконечен.<br>";
?>

При проверке этого примера, возможно, для того чтобы остановить программу понадобится завершить работу браузера.

При составлении циклов необходимо проверить тщательно все части оператора for, чтобы не возник бесконечный цикл (конечно, если таковой не задуман).

Приведем пример использования некоторых математических функций в PHP:

Файл for3.php

<?php
$n=20;
echo "Число Пи=".pi()."<br>";
?>
<TABLE border='1'>
<TR><TH>x</TH><TH>round(cos(x),4)</TH><TH>sin(x)</TH><TH>sqrt(x)</TH></TR>
<?php
$h=2*pi()/$n;
for($x=0; $x<=2*pi(); $x+=$h) {
echo "<TR><TD>",$x,"</TD><TD>",round(cos($x),4),"</TD>";
echo "<TD>",sin($x),"</TD><TD>",sqrt($x),"</TD></TR>";
}
?>
</TABLE>

Оператор x+=h эквивалентен оператору x=x+h, но выполняется быстрее. Можно также использовать операторы -=, *=, /=.

Контрольные вопросы и задания

  1. Создайте пример "бесконечного" цикла.
  2. Создайте пример цикла с модификацией вида x-=h.
  3. В скрипт for3.php добавьте еще одну колонку для вывода значений тангенса от x.