Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

PHP для начинающих - N6


Информационный Канал Subscribe.Ru

PHP для начинающих Выпуск N6
Тема: Циклы Ведущий: Дмитрий, ICQ: 2060111

В выпуске:

  1. WebTALK.RU: Форумы вебразработчиков
  2. Цикл FOR
  3. Цикл WHILE
  4. Цикл DO...WHILE
  5. Пример в номер   Новая рубрика!
  6. В следующем выпуске


WebTALK.RU: Форумы вебразработчиков

Вы еще не были на нашем форуме WebTALK.RU? Заходите, не пожалеете :)

Если помните, в прошлом выпуске я говорил о новом форуме - тогда проект только открылся. Результат оправдал все ожидания :) Спасибо вам друзья, что так заинтересовались нашим форумом! Я очень рад, что моя идея получила ваше одобрение. За недолгое время существования наш форум уже успел стать местом общения вебмастеров, разработчиков и просто интересующихся вебтехнологиями.

Сегодня на форуме зарегистрировано более 100 участников, которые оставили около 700 сообщений. Менее чем за неделю скопилась масса полезной информации. Приглашаю и вас принять участие в нашем форуме. Если у вас есть вопросы, на которые вы хотели бы получить ответ или вы просто хотите пообщаться с единомышленниками - приходите, все это на WebTALK.RU!


Цикл FOR

Циклы в программе вещь незаменимая. Основная суть этой конструкции это возможность повторения части программы несколько раз - определенное заданное количество или же пока соблюдается какое-либо условие. Без циклов не обходиться ни одна, даже самая простенькая программа. В этом выпуске мы наконец познакомимся с циклами в PHP и разберем, как они оформляются в программе. Первый и самый распространенный цикл - FOR. По-английски FOR означает "для". Именно так и можно перевести работу этого цикла. Давайте посмотрим, как он оформляется в программе:


<?
  for ($i=0; $i<10; $i++) {
    echo "i= ".$i;
    echo "<br>";
  }
?>

Обратите внимание на первую строчку, которая выделена жирным шрифтом. Это и есть конструкция цикла FOR. Расшифровывается она следующим образом:

  • Сначала пишется служебное слово for, которое означает начало цикла.
  • Далее в круглых скобках идет условие цикла, состоящее из трех выражений, разделенных точкой с запятой.
  • Первая часть - это выражение, которое задает начальное значение переменной цикла. В нашем случае "$i=0;" задает $i равное нулю.
  • Вторая часть - выражение, которое проверяется на истинность. Если оно верно - цикл выполняется. Как только оно перестает быть верным, цикл завершается. Вспомните IF - именно такое выражение используется здесь.
  • Третья часть - это шаг цикла. Здесь, как и в предыдущих, может быть совершенно любое выражение, которое изменяет начальное значение переменной цикла. В нашем случае это просто увеличение на 1 "$i++";
Итак, если исходить из этой расшифровки, то по-русски можно прочитать заголовок цикла FOR таким образом: "Выполнять цикл от $i равному нулю до $i меньше 10. По ходу цикла увеличивать $i на единицу." В нашем случае цикл будет выполняться 10 раз. В самый первый раз переменной $i присвоиться значение (часть 1), в следующий раз оно будет увеличиваться на единицу (часть 3) и проверяться на истинность (часть 2). Вот и вся незатейливая работа цикла FOR.

Обратите внимание на тот факт, что в качестве любого из трех частей может выступать совершенно любое выражение. Это может быть увеличение или уменьшение переменной, проверка формулы, функция и т.п. Также любая часть может отсутствовать вовсе: for ($i=0;$<10;) Но точку с запятой нужно ставить обязательно. Выражений может не быть вообще: for (;;) но, как видите, две точки с запятой обязательны. Кстати, последний пример создаст бесконечный цикл и есть все шансы подвесить сервер.

Вот примеры использования выражений в конструкциях FOR:


<?
  for ($i+15-$a; $i<10 || $i>8;); // два выражения, 3-е отсутствует.
  for ($i=10; $i>0; $i--); // цикл "по убыванию" - от 10 до 1
  for (;;); // "пустой" - бесконечный цикл
?>

В цикле FOR, также как и в известной вам конструкции IF...THEN...ELSE действует правило, когда при наличии нескольких операторов в блоке они оформляются фигурными скобками: {...}. Если оператор один - достаточно поставить после него точку с запятой. Вот пример "свернутой" и "развернутой" конструкции:

<?
  for ($i=1; $i<11;$i++) echo "i=$i<br>";
  for ($i=0; $i<10; $i++) {
    echo "i= ".$i;
    echo "<br>";
  }
?>

Это вся теория относительно цикла FOR. Конкретные примеры его использования смотрите в рубрике Пример в номер.


Цикл WHILE

Цикл WHILE несколько отличается от цикла FOR. Основное отличие - это отсутствие каких-либо действий с переменной цикла. WHILE только проверяет ее на истинность и при утвердительном результате (выражение верно) продолжает работу. Как только выражение перестает быть истинно, он завершается. Больше WHILE не делает ничего - ни задает начальные значения, ни производит действий с переменными. Проще говоря, WHILE содержит только вторую часть конструкции цикла FOR - проверку условия. Прежде чем разбираться, где и как используется этот цикл, давайте посмотрим, как он выглядит:


<?
  $i = 1;
  while ($i<11) {
    echo "i=$i<br>";
    $i++;
  }
?>

Здесь все просто и, если вы уже знакомы с циклом FOR, то разберетесь в этой конструкции без проблем. По порядку:

  • Сначала указывается служебное слово while, которое означает начало цикла.
  • Далее в скобках указывается логическое выражение, которое проверяется на истинность. Если оно верно - выполняется тело цикла. В нашем случае - если $i меньше 10, то цикл работает. Если нет - цикл завершается.
Как обычно, выражение может быть любой сложности. Также здесь, как и в других конструкциях языка, работает правило оформления нескольких операторов в скобках {...}. Если оператор один - скобки можно опустить.

Основное назначение цикла WHILE - изменение переменной цикла в самом теле цикла. Это бывает очень полезно, когда используются нематематические проверки. Хочу обратить ваше внимание на основное правило использования WHILE и FOR - когда нужно выполнить цикл строго определенное количество раз, используется FOR, так как он позволяет задать жесткий шаг. Когда нужно, чтобы количество выполнений (или, по-другому итераций) цикла зависело от программы и может быть различным в зависимости от текущих условий - используется WHILE.

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


Цикл DO...WHILE

Еще один цикл, который можно использовать в PHP - это цикл DO...WHILE. По сути - этот тот же WHILE, только проверка выполняется не в начале, а в конце цикла. Вот как он выглядит:


<?
  do {
    $ii++;
    echo $ii."<br>";
  } while ($ii<10);
?>

В операторе WHILE() используется логическое выражение. Если оно истинно - цикл выполняется. Если нет - цикл завершает работу. Использование этого цикла, также как и WHILE, целесообразно тогда, когда количество итераций зависит от условий программы и для завершения работы блока требуется проверка логического условия.


Пример в номер

В этой новой рубрике, которую ведет Александр Лысенко (за что ему огромное спасибо!) вы найдете полезные примеры, которые помогут вам лучше понять изучаемый материал. Сегодня здесь приводиться два примера, которые выводят таблицу умножения различными способами - с использованием циклов FOR и WHILE.

Пример N1: Цикл FOR


<?
/*
СТАНДАРТНАЯ ТАБЛИЦА УМНОЖЕНИЯ (КАК У ВСЕХ В ШКОЛЕ БЫЛА ВЗАДИ
ТЕТРАДИ)
ПРОСТОЙ ПРИМЕР ДЛЯ РАБОТЫ С ЦИКЛАМИ
*/

//Первый множитель
for ($i=1; $i<10; $i++) //Пока $i меньше 10 увеличиваем её на 1
{

 //Второй множитель
 for ($j=1; $j<10; $j++)  //Также с $j пока она меньше 10 увеличиваем её на 1
 {
 //Выводим результат, т.е. саму таблицу умножения
  echo "$i * $j = ".$i*$j."<br>";
 }
}
?>

Пример N2: Работа с циклом WHILE

<?
/*

ТАЖЕ ТАБЛИЦА УМНОЖЕНИЯ ТОКА В ОБРАТНОМ ПОРЯДКЕ И ЗАПИСАНАЯ ПРИ
ПОМОЩИ ОПЕРАТОРА
while

*/

$i=10;  //начальное значение $i
while (--$i)  //Уменьшение $i на единицу  пока она не станет 0
{
  $j=10; //Начальное значение $j
  while (--$j)  //Уменьшение $j на единицу  пока она не станет
  {
   echo "$i * $j = ".$i*$j."<br>";   //Вывод результата, т.е. самой таблицы умножения
  }
}
?>
У вас есть вопросы? Задайте их всей нашей аудитории на Форуме!


В следующем выпуске

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

До следующего выпуска. С уважением, Дмитрий.
Посетите нам форум:
WebTALK.RU
Email: dmitry@eserver.ru

Ведущий рассылки: Дмитрий. dmitry@eserver.ru
ICQ: 2060111


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное