Страницы

воскресенье, 19 февраля 2012 г.

PHP. Цикл for

Рассматриваем циклы. Цикл for - синтаксис использования и для чего предназначен. Поясняем все на пальцах

Понятие цикла я думаю вам уже должно быть знакомо, поэтому сильно останавливаться на это я не буду. Нам нужно понять, как работает сие чудо производства :) Логика, синтаксис, орфография все рассмотрим на примере. Прежде чем рассмотрим данный цикл for, предлагаю вашему вниманию другой цикл - цикл do-while, который был рассмотрен уже нами ранее. Ведь суть обоих циклов - это вывести заданное разработчиком количество раз определенный код, исходя из каких-то условий.

Перейдем к рассмотрению нашего цикла. Люблю пример приводить с футболом, поэтому никуда не деться, будем воспринимать информацию именно в таком виде :) Представляем снова: мы тренер, и мы снова добиваемся того, чтобы показатели попадаемости в ворота нашего игрока были на максимальном уровне. И мы, как тренер с великим стажем и опытом, знаем такой секрет: если футболист будет бить по мячу 50 раз за тренировку, то его прицельность увеличится, т.е. наша цель - проследить за количеством его ударов. Мы продумываем тактику, как будем наблюдать за нашим любимым игроком. Наша команда, которую мы хотим задать нашему футболисту на выполнение - бей по мячу. Итак, смотрим, что получится:
for ($udar = 0; $udar <=50; $udar++) {
бей по мячу;
}
Разберемся: наши условия в круглых скобках состоят из 3 частей, как вы успели заметить, которые разделены точкой с запятой (;).
  • Первая часть - в ней мы задаем какие-то начальные условия, например, как в нашем случае, первоначальное значение переменно $udar, равное нулю. Через запятую мы можем добавлять различные изначальные значения и условия для начала работы нашего цикла. Эту часть называют сегментом инициализации и все, что находится в этой части обрабатывается до начала выполнения кода внутри самого цикла for. То есть, ещё не зная что будет происходить в наших квадратных скобках внутри цикла, мы уже определили начальное значение для нашей переменной. Для нашего случая представим, что переменная удар - это значение количества ударов, совершенных нашим футболистом. Значит мы знаем, что по выходу на поле он ещё не свершил ни одного удара, но намерен это сделать :)
  • Вторая часть - сегмент условия. В ней мы соответственно задаем условие, по которому и будет определяться работа самого цикла for. В нашем случае $udar <=50, что означает: наш цикл будет выполняться до тех пор, пока переменная $udar не станет больше 50, т.е. цикл истинен только при значении переменной, меньшего 50. В нашем примере мы будем добиваться того, чтобы игрок совершал удары по воротам в количестве 50 раз, так мы реализовали данный блок. Т.е. мы будем говорить ему, как тренер, бей по мячу, пока твое количество ударов не достигнет 50 и не станет больше этого значения
  • Третья часть - сегмент пост-обработки. Эта часть выполняется каждый раз после завершения кода цикла, расположенного внутри этого цикла. В нашем примере внутри цикла выполняется такая команда: "бей по мячу". То есть каждый раз, как мы сказали игроку совершить удар, он делает это, тем самым выполняя весь цикл (так для нашего примера), и после свершения этого удара у нас выполняется третья часть, сегмент пост-обработки. В нашем случае мы увеличиваем значение переменной $udar на единицу знакомой вам уже командой $udar++ (декремент, инкремент читайте здесь). Соответственно раз футболист совершил удар, то количество его ударов увеличилось на единицу, приближая наше желание, как тренера, достичь показателя в 50 ударов.
В итоге думаю логика понятна: мы совершаем 50 циклов - ударов по мячу, каждый раз увеличивая количество ударов на 1, тем самым продвигаясь к нашему целевому показателю. Главное, запомнить правописание данного цикла:
  1. Инициализация (начальные установки)
  2. Условие
  3. Пост-обработка (код для обработки после каждого цикла)
Как видите, не совсем сложно :) Теперь давайте попробуем реализовать простой пример для рабочей среды php:
<?
for ($a = 1; $a <= 5; $a++){
echo "Вывожу этот текст $a-й раз";
}
?>
Подумайте сначала сами и прикиньте, что мы должны увидеть на экране. Если представили, то теперь сравните свои фантазии с тем, что должно получиться:
Вывожу этот текст 1-й раз
Вывожу этот текст 2-й раз
Вывожу этот текст 3-й раз
Вывожу этот текст 4-й раз
Вывожу этот текст 5-й раз
Как видите мы использовали вывод данного текста в цикле (кстати вывод осуществлялся уже знакомым вам методом "echo"). У нас вывелся текст 5 раз, причем в качестве нумерации вывода сообщения мы использовали переменную $a, которая и являлась нашим счетчиком и условием в цикле. Пока у нас переменная была меньше 5, она выводилась каждый раз и после окончания такого одного цикла увеличивалась на единицу. В итоге по достижению значения 6 - условие стало ложно, т.е. не соответствует нашему уже установившемуся значению переменной, поэтому обработчик понимает, что циклить больше не надо и выходит из цикла. Ну а далее уже работает на последующие операторы и команды.

Попробуйте сами попрактиковаться с этим, можете использовать внутри цикла for - цикл if - else. Так можно поэксперементировать и увидеть новые возможности сего слияния. Практика и ещё раз практика - ключ к успеху открытия ваших целей!

Комментариев нет:

Отправить комментарий