Циклы в php с mysql do while. Циклы. Операторы continue и break

Эту статью я пишу для новичков, которые только начинают изучать PHP . Расскажу я в этой статье о всевозможных циклах в PHP , так как данной статьи у меня на сайте не было. Были только , но, несмотря на общую схожесть, это всё-таки не то. В PHP есть 4 вида циклов .

  1. WHILE
  2. DO-WHILE
  3. FOREACH

Разберём их по порядку и начнём с самого популярного цикла в PHP (да и не только в PHP ) - это цикл FOR . Синтаксис у данного цикла следующий:

For(Выражение_1; Выражение_2; Выражение_3) {
операторы
}

Выражение_1 выполняется сразу же и безоговорочно, Выражение_3 выполняется после каждой итерации цикла. Выражение_2 - это проверка того, нужно ли продолжать цикл. Если результат выражения будет true , то начинается следующая итерация цикла, а если false , то цикл прекращает свою работу.

Следующий тип цикла - это WHILE . Это более простой тип циклов, синтаксис которого следующий:

While(Выражение) {
операторы
}

Пока Выражение возвращает true , цикл будет работать, а как только появится false , он прекращает свою работу.

Цикл DO-WHILE очень похож на WHILE , но с одним отличием. Условие выхода проверяется после выполнения итерации, а не до. Таким образом, данный цикл будет выполняться всегда хотя бы 1 раз. И вот синтаксис цикла DO-WHILE :

Do{
операторы
}while(Условие);

И, наконец, последний тип циклов - это foreach , который служит только для перебора массивов и объектов . Он необходим, когда ключами у массива являются не числа (которые легко перебрать через тот же FOR ), а строки. Синтаксис цикла FOREACH следующий:

Foreach($array_or_object as $key => $value) {
операторы
}

И, наконец, давайте применим все 4 типа циклов в PHP для перебора массивов :

$list = array(5, 2, 3, 10, 12, 10);
$array = array("a" => 1, "x" => 10, "m" => -5);
for ($i = 0; $i < count($list); $i++) {
echo $list[$i]."; ";
}
echo "
";
$i = 0;
while ($i < count($list)) {
echo $list[$i]."; ";
$i++;
}
echo "
";
$i = 0;
do {
echo $list[$i]."; ";
$i++;
}while($i < count($list));
echo "
";
foreach ($array as $key => $value) {
echo "$key = $value; ";
}
?>

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

Последнее обновление: 1.11.2015

Для совершения повторяемых действий в PHP, как и в других языках программирования, используются циклы. В PHP имеются следующие виды циклов:

Цикл for

Цикл for имеет следующее формальное определение:

For ([инициализация счетчика]; [условие]; [изменение счетчика]) { // действия }

Рассмотрим стандартный цикл for:

"; } ?>

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

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

Третья часть - приращение счетчика на единицу. Опять же нам необязательно увеличивать на единицу. Можно уменьшать: $i--.

В итоге блок цикла сработает 9 раз, пока значение $i не станет равным 10. И каждый раз это значение будет увеличиваться на 1. Каждое отдельное повторение цикла называется итерацией. Таким образом, в данном случае произойдет 9 итераций.

Цикл while

Цикл while проверяет истинность некоторого условия, и если условие истинно, то выполняются блок выражений цикла:

"; $counter++; } ?>

Если в блоке while всего одна инструкция, то фигурные скобки блока можно опустить:

"; ?>

Цикл do..while

Цикл do..while похож на цикл while , только теперь выполняется блок цикла, и только потом выполняется проверка условия. То есть даже если условие ложно, то блок цикла выполнится как минимум один раз:

"; $counter++; } while($counter<10) ?>

Операторы continue и break

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

80) { break; } echo "Квадрат числа $i равен $result
"; } ?>

И если вдруг результат операции окажется больше 80, то происходит выход из цикла.

Для управления циклами также применяется оператор continue . Он осуществляет переход к следующей итерации цикла:

"; } ?>

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

На уроке будут рассмотрены операторы цикла php: цикл while php, цикл foreach, цикл do while и цикл со счетчиком for. Будут разобраны примеры выхода из цикла (в php — break и continue)

Синтаксис:

while (условие){ оператор 1; оператор 2; ... }

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

Рис. 4.1. Пример использования цикла While


Результат:

1 2 3 4 5 6 7 8 9 10

Кроме того, можно использовать альтернативный синтаксис :

while (условие): оператор 1; оператор 2; ... endwhile;

Рис. 4.2. Пример альтернативного использования цикла While


Пример: Выводить на экран ряд чисел 4 7 10 13 16 19 22… Всего вывести 30 цифр. Использовать цикл While php


Решение:
1 2 3 4 5 6 $sum = 1 ; while ($i <= 30 ) { $sum += 3 ; $i ++; echo ($sum . " " ) ; }

$sum=1; while ($i<=30){ $sum+=3; $i++; echo ($sum." "); }

Результат:

4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 82 85 88 91 94

Пример: Выводить степени двойки до значения 1024



Решение:

do { оператор 1; оператор 2; ... } while (условие);

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

Рис. 4.3. Пример использования цикла Do While


Результат:

1 2 3 4 5 6 7 8 9 10

Пример: Выводить на экран ряд чисел 4 7 10 13 16 19 22.. . Всего вывести 30 цифр



Решение:

for (начальное значение счетчика; условие продолжения цикла; изменение счетчика на каждой итерации) { оператор 1; оператор 2; ...; }

  • После служебного слова for в скобках через; обязательно указываются 3 параметра.
  • Цикл For в php может быть и без фигурных скобок, если в теле цикла присутствует только один оператор.

Рис. 4.4. Пример использования цикла For


Результат:

Привет!
Привет!
Привет!
Привет!
Привет!

  • В php для цикла for поддерживается альтернативный синтаксис:
  • for (начальное значение счетчика; условие продолжения цикла; изменение счетчика на каждой итерации) : оператор 1; оператор 2; ...; endfor;

Пример: Выводить в окно браузера числа от 1 до 10


Решение:
1 2 3 for ($i = 1 ; $i <= 10 ; $i ++ ) { echo $i . " " ; }

for ($i = 1; $i <= 10; $i ++) { echo $i." "; }

Результат:

Лабораторная работа:
Нарисовать таблицу умножения

Этап 1

  1. Создайте две числовые переменные cols и rows
  2. Присвойте созданным переменным произвольные значения в диапазоне от 1 до 10

Этап 2

  1. Используя циклы, отрисуйте таблицу умножения в виде HTML-таблицы на следующих условиях:
  • Число столбцов должно быть равно значению переменной cols
  • Число строк должно быть равно значению переменной rows
  • Ячейки на пересечении столбцов и строк должны содержать значения, являющиеся произведением порядковых номеров столбца и строки
  • Рекомендуется использовать циклы for
  • Этап 3

    • Значения в ячейках первой строки и первого столбца должны быть отрисованы полужирным шрифтом
    • Фоновый цвет ячеек первой строки и первого столбца должен быть отличным от фонового цвета таблицы. Сохраните файл.

    Дополните код:

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 " ; for ($td = 1 ; ...; ... ) { if (... ) { echo "" ; } else { echo "" ; } } echo "" ; } ?>
    " , $tr * $td , "" , $tr * $td , "

    "; for($td=1; ...; ...){ if(...){ echo ""; }else{ echo ""; } } echo ""; } ?>
    ", $tr * $td, "", $tr * $td, "

    Количество элементов массива

    Для удобства работы с массивами часто используется функция count()

    Функция возвращает кол-во элементов массива

    count ($masiv ) ;

    Пример: Дан массив, состоящий из названий времен года. Необходимо вывести все элементы массива неизвестного размера


    Решение:
    1 2 3 4 5 6 7 8 9 $mas [$n ]" . "
    " ; } ?>

    "; } ?>

    Результат:

    Цикл Foreach в php

    Обход массива наиболее выгодным образом происходит при помощи итерационного цикла foreach , позаимствованного из синтаксиса языка Perl.


    Рис. 4.6. Пример использования цикла Foreach, полный вариант


    Результат:

    Массив с индексом 0 равен 1
    Массив с индексом 1 равен 2
    Массив с индексом 2 равен 3
    Массив с индексом 3 равен 4

    Пример: Выводить индексы и значения массива user , в котором записаны данные об Иване


    Решение:
    1 2 3 4 5 6 7 8 $user [ "name" ] = "Ivan" ; $user [ "login" ] = "root" ; $user [ "password" ] = "p@ssword" ; $user = "312-34-85" ; foreach ($user as $index => $value ) { echo "Индекс $index равен $value
    "
    ; }

    $user["name"]="Ivan"; $user["login"]="root"; $user["password"]="p@ssword"; $user="312-34-85"; foreach($user as $index =>$value){ echo "Индекс $index равен $value
    "; }

    Результат:

    Пример:

    1. Выводить приветствие для имен из списка
    2. Кроме приветствия выводить номера в списке
    1 2 3 4 5 6 7 8 9 10 $names = array ("Иван" , "Петр" , "Семен" ) ; // 1 задание foreach ($names as $val ) { echo "Привет, $val
    "
    ; } // 2 задание foreach ($names as $k => $val ) { echo "Привет, $val ! Ты в списке под номером $k
    "
    ; }

    $names = array("Иван","Петр","Семен"); // 1 задание foreach ($names as $val) { echo "Привет, $val
    "; } // 2 задание foreach ($names as $k => $val) { echo "Привет, $val ! Ты в списке под номером $k
    "; }

    Результат:

    Задание php 4_3: Дан массив, состоящий из названий дней недели. Вывести элементы, используя конструкцию foreach .

    Дополнительно: вывод должен быть в формате: понедельник – день 1 -й



    Лабораторная работа:
    Нарисовать (добавить) навигационное меню на странице, типа:

    <a href = "contact.php" > Contact</ a >

    Contact

    используя массив в качестве структуры меню.

    Алгоритм:

    1. Создайте ассоциативный массив $menu
    2. Заполните массив, соблюдая следующие условия:
    • Индексом элемента массива является пункт меню, например: Home , About , Contact
    • Значением элемента массива является имя файла, на который будет указывать ссылка, например: index.php , about.php , contact.html
  • Используя цикл foreach отрисуйте вертикальное меню, структура которого описана в массиве $menu
  • Выполнение однообразных операций всегда напрягает нас в реальной жизни. Например, запечатать 50 конвертов с письмами (согласен, неудачный пример, но суть ясна). А вот в программировании есть такие хорошие конструкции, которые позволяют упросить выполнение повторяющихся операций. Одним из решений будут , которые мы рассмотрели в одном из прошлых уроков. Но также существует и еще несколько вещей, которые позволят упростить нам жизнь — циклы.

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

    Простой пример цикла While

    Суть вайла проста. Он будет выполнять заданный набор команд снова и снова, пока выполняется прописанное условие. Так называемый цикл с предусловием, то есть сначала проверка, потом выполнение. Эта логическая проверка работает так же, как та, которую мы рассматривали в уроке про .
    Простой пример while цикла представлен ниже:

    While (условие){ //тело цикла; }

    Этот код показывает, как построен цикл. Примерный алгоритм выполнения выглядит следующим образом:

    • Шаг 1. Проверяется заданное условие цикла. Если оно истинно, то выполняется Шаг 2, если ложно, то Шаг 4.
    • Шаг 2. Выполнение тела цикла (заданных команд).
    • Шаг 3. Процесс начинается снова (Шаг 1).
    • Шаг 4. Если условное выражение ложно, то код внутри цикла не выполняется. Код, записанный после цикла выполняется как обычно.