Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Цикл while. Бесконечный цикл. Цикл for. Цикл без тела




Цикл while

Цикл while будет выполняться до тех пор, пока верно (истинно) выражение, переданное ему параметром. Смотрите синтаксис:

<? php    while ( пока выражение истинно ) {            тут пишется код, который выполнится много раз;     }    /*            В начале каждого прохода цикла PHP проверяет выражение в круглых скобках:             если оно верно - выполняет следующий проход цикла,             а если неверно - цикл завершает свою работу.             То есть: цикл закончится, когда выражение перестанет быть истинным.             Если оно было ложным изначально - то он не выполнится ни разу.     */     //Как и для foreach есть альтернативный синтаксис:     while ( пока выражение истинно ):             тут пишется код, который выполнится много раз;     endwhile;? >

Давайте выведем с помощью цикла while столбец цифр от одного до пяти.

Для этого введем переменную $i, которую будем использовать для того, чтобы остановить наш цикл.

Как мы это сделаем: перед циклом поставим ей значение 1, а внутри цикла будем при каждом проходе цикла увеличивать ее на единицу. Сначала она будет 1, потом 2, потом 3 и так далее.

В условии окончания цикла поставим $i < = 5 - это значит, что пока $i будет меньше или равна пяти - цикл будет работать, а как только она станет 6 - цикл закончит свою работу.

Мы используем переменную $i, чтобы считать количество проходов цикла. Однако, можно также воспользоваться ей для вывода нужного нам столбца чисел от 1 до 5-ти.

Просто при каждом проходе цикла будем выводить содержимое $i и тег br (чтобы получился столбец). Так как $i каждый раз увеличивается на единицу, то сначала на экран выведется 1, потом 2 и так далее до 5-ти.

Итак, вот описанный мною код:

<? php    $i = 1; //начальное значение переменной $i    while ($i < = 5) { //цикл закончится, когда $i станет больше 5-ти            /*                     Выводим значение переменной $i на экран                      при каждом проходе цикла:             */            echo $i. '< br> ';             /*                     С помощью оператора ++ увеличиваем $i на единицу                      при каждом проходе цикла:             */            $i ++;     }? >

Переменная $i, которую мы использовали, является так называемым счетчиком цикла. Счетчики используются для того, чтобы выполнить цикл нужное количество раз.

Кроме того, они выполняют вспомогательную роль - в нашей задаче мы использовали счетчик, чтобы вывести цифры от 1 до 5 (и при этом для того, чтобы остановить цикл после 5-ти проходов).

Для счетчиков принято использовать буквы i, j и k.

Бесконечный цикл

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

<? php    $var = true;     while ($var === true) {            /*                     Написанный здесь код будет выполняться 'вечно'                     (пока скрипт не будет остановлен принудительно).                      Не стоит это повторять - это приведет к зависанию сервера!             */    }? >

Вместо $var === true можно написать сокращенный вариант - просто $var (так же, как и сокращенный вариант для if):

<? php    $var = true;     while ($var) {            /*                Написанный здесь код будет выполняться 'вечно'                     (пока скрипт не будет остановлен принудительно).                      Не стоит это повторять - это приведет к зависанию сервера!             */    }? >

А можно вообще не вводить переменную $var, а в круглых скобках написать true:

<? php    while (true) {            /*                     Написанный здесь код будет выполняться 'вечно'                     (пока скрипт не будет остановлен принудительно).                      Не стоит это повторять - это приведет к зависанию сервера!             */    }? >

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

Посмотрите на следующий пример - в нем начальное значение $i равно 1, в цикле оно каждый раз увеличивается на единицу, то есть $i будет расти - сначала 1, потом 2, потом 3...

А условие окончания цикла такое: $i > = 1. То есть пока $i больше или равна 1 - цикл будет крутиться. В нашем случае это будет вечно (так как $i растет и никогда не станет меньше 1):

<? php    $i = 1;     while ($i > = 1) {        /*                     Написанный здесь код будет выполняться 'вечно'                     (пока скрипт не будет остановлен принудительно).                      Не стоит это повторять - это приведет к зависанию сервера!             */             $i ++;     }? >

Цикл for

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

Его синтаксис выглядит так:

<? php    for ( начальные команды; условие окончания цикла; команды после прохода цикла ) {            тело цикла    }? >

Начальные команды - это то, что выполнится перед стартом цикла. Они выполнятся только один раз. Обычно там размещают начальные значения счетчиков, пример: $i = 0.

Условие окончания цикла - пока оно истинное, цикл будет работать, пример: $i < 10.

Команды после прохода цикла - это команды, которые будут выполнятся каждый раз при окончании прохода цикла. Обычно там увеличивают счетчики, например: $i++.

Давайте выведем столбец чисел от 0 до 9 с помощью цикла for:

<? php    /*            В начале цикла $i будет равно нулю,            цикл будет выполнятся пока $i < 10,            после каждого прохода к $i прибавляется единица:     */    for ($i = 0; $i < 10; $i ++ ) {            echo $i. '< br> '; //выведет 0, 1, 2... 9    }? >

Цикл без тела

Напоминаю, что фигурные скобки в циклах можно не указывать - в этом случае цикл выполнит только одну строку под ним (не рекомендую так делать, часто приводит к ошибкам):

<? php    for ($i = 0; $i < 10; $i ++ ) //< --- точки с запятой нет            echo $i; //выведет 0, 1, 2... 9? >

А вот если после ) поставить точку с запятой - цикл закроется и следующая строка в него не попадет, получится так называемый цикл без тела, который в нашем случае просто прокрутится и в результате изменит значение переменной $i:

<? php    for ($i = 0; $i < 10; $i ++ ); //< --- точка с запятой есть    echo $i; //выведет 9? >

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

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...