Делай это, пока не выполнится условие. Говорим о конструкции do-while.
Сегодня мы рассмотрим очень полезный блок, часто используемый в php (хотя в реальной жизни это условие вполне применяется и довольно таки удачно). В чем же суть данного процесса.
Конструкция состоит из 2 частей:
1) команды, которые будут выполняться до тех пор, пока не выполнится
2) условие.
Чтобы понять, как работает данная конструкция, приведу жизненный пример. Представим, что мы выполняем функцию тренера, и даем своему футболисту наставления: бей по мячу до тех пор, пока не забьешь гол в ворота. Мы задали ему команду: бить по мячу, пока не выполнится условие: мяч в воротах (гол в простонародии). И вот он бедный в поте лица пытается совокупить синтез удара своей ногой с мячом, дабы внедрить этот круглый супостат в недра ворот, но некая злая сущность мешает ему сотворить данное слияние, и ему приходится бить все больше и больше, пока мяч не достигнет своей цели. Теперь представим, как бы это выглядело на php:
<?
do {
бей по мячу;
}
while (мяч в воротах)
?>
Т. е.: делай {бей по мячу } пока не выполнится условие (мяч в воротах).
Как тренер смотрит на футболиста, так в php обработчик проверяет код. Проведем аналогию: тренер - обработчик.
Представим, что мы, как обработчик футболиста (тренер), смотрим на то, что делает футболист (do { }): он бьет по мячу, а мы проверяем (while ()): залетел ли мяч в ворота. И так проходит проверка каждого удара футболиста тренером. Когда футболист забил гол (условие выполнилось), мы разрешаем ему делать следующее задание, прописанное обработчиком после всего цикла. В php будет выполняться команда, следующая за while.Теперь рассмотрим данный цикл в рамках использования команд php-структуры. К примеру, нам нужно вывести сообщение: "О каком прогрессе может идти речь, если я до сих пор не могу заправить пододеяльник, не матерясь!", но нужно его вывести столько раз, сколько мы зададим, например, в переменной $a. Надеюсь про переменные вы уже прочитали статью, и более/менее знаете, как это использовать. Итак, вот к примеру у нас есть такой код:
<?
$a = 0;
do {
echo "О каком прогрессе может идти речь, если я до сих пор
не могу заправить пододеяльник, не матерясь!";
$a++;
}
while ($a == 5);
?>
Сейчас разберемся, что тут намазюкано и как работает пошагово. Хочу сразу сказать: при задании условия, когда нам нужно приравнять какое-то значение переменной использует два знака равно ==. Это такая особенность в php, надо ее принять как родную:)
Открывает наш любимый php-код строчка $a = 0;, которая говорит нам, что мы заносим в переменную $a значение 0. Для чего нам это нужно: данная субстанция $a будет являться для нас счетчиком Первый цикл: выводим сообщение + увеличиваем $a на 1 (в итоге $a=1) - условие ($a == 5) не выолнено
Второй цикл: выводим сообщение + увеличиваем $a на 1 (в итоге $a=2) - условие ($a == 5) не выолнено
Третий цикл: выводим сообщение + увеличиваем $a на 1 (в итоге $a=3) - условие ($a == 5) не выолнено
Четвертый цикл: выводим сообщение + увеличиваем $a на 1 (в итоге $a=4) - условие ($a == 5) не выолнено
Пятый цикл: выводим сообщение + увеличиваем $a на 1 (в итоге $a=5) - условие ($a == 5) выполнено
Проверкой данного условия мы выходим из этого цикла, причиной свидетельствования чего стало присваивание переменной $a значения 5, что стало результатом инкремента нашей переменной. В итоге на нашем сайте увидим результат в виде 5 сообщений, но слитных друг с другом, так как мы не использовали тег <br>. Хочу добавить, что также возможна другая вариация нашей конструкции:
<?
$b = 0;
while ($b <= 5) {
echo "О каком прогрессе может идти речь, если я до сих пор
не могу заправить пододеяльник, не матерясь!";
$b++;
}
?>
В чем же здесь отличие: здесь используется в начале условие, а затем уже идет исполнение самих команд в отличие от первого способа, где изначально выполнялись все команды, а затем уже проверялось условие. В основном данное отличие используется на последнем цикле, в зависимости от нашей надобности проверить вначале условие или все-таки сначала исполнить нужный нам код.
Как работает это условие - проверяем: пока переменная $b меньше либо равна 5, выполняются команды, прописанные в скобках { }. Собственно в них мы выводим опять же сообщение и увеличиваем наш счетчик (уже переменная $b) на 1. Но условие проверяется не после цикла, а вначале цикла, т.е. после свершения всех команд. И здесь нам бы не подошло условие $b == 5, так как прописанные для исполнения команды имели бы место на выполнение только при $b = 5, то есть при начальном условии, когда переменная $b ещё было равна 0, наши команды не выполнились бы вообще.
Подведем итог:
1 способ (do { } while ( ) ) - мы выполняли команды в квадратных скобках, пока не выполнялось условие в круглых скобках. Иначе - выход из цикла.2 способ (while ( ) { } ) - пока выполняется условие в круглых скобках, исполняются команды в квадратных скобках. Иначе - выход из цикла.

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