Счетчик в php цикле

Изучаем PHP цикл for, теория и практика

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

 for(инициализация; условие выхода; оператор счетчика) < //тело цикла >

Основные части конструкции цикла for:

  • инициализация — это выражение, которое выполняется один раз перед выполнением цикла; обычно используется для инициализации счётчика;
  • условие выхода — это выражение, истинность которого проверяется перед каждой итерацией; если выражение вычисляется как истина, то выполняется итерация; в противном случае цикл for завершает работу;
  • операто счетчика — это выражение, которое выполняется в конце каждой итерации; обычно используется для изменения счетчика;
  • тело цикла — инструкции, выполнение которых нужно повторять.

Цикл for начинается объявлением переменной i (название счетчика не обязательное) и задания ей значения 0 . Затем проверяет, что i меньше девяти, выполняет выражения внутри цикла и увеличивает i на 1 каждый раз.

 $str = ''; for ($i = 1; $i $str = rtrim($str, ',') . '.'; echo $str;//на выходе: 1,2,3,4,5,6,7,8,9,10. 
  • инициализация: $i = 1 (объявление переменной $i и присвоение ей значения 1);
  • условие выполнения цикла: $i (пока значение переменной $i меньше или равно 10);
  • финальное выражение, которое нужно выполнять в конце каждой итерации: $i++ (увеличение значение переменной $i на 1);
  • в теле цикла в переменную $str записывается значения счетчика.

Альтернативный синтаксис цикла for

 for ($i = 4; $i > 0; $i--): ?> 

$i = echo $i; ?>

endfor; ?> //на выходе:

$i = 4

$i = 3

$i = 2

$i = 1

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

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

 $x = 5; for ($i = 0; $i < 10; ++$i) < if ($i === $x) < echo $i;//на выходе: 5 break; > > 

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

В отличие от оператора break , оператор continue производит переход к следующей итерации. Например, нам надо посчитать сумму только нечетных чисел из некоторого диапазона:

 $sum = 0; $n = 10; for ($i = 1; $i continue; > $sum += $i; > echo $sum;//на выходе: 25 

Чтобы узнать, четное ли число, мы получаем остаток от целочисленного деления на 2 , и если он равен 0 , то с помощью оператора continue переходим к следующей итерации цикла. А если число нечетное, то складываем его с остальными нечетными числами.

Как и другие виды циклов, циклы for могут быть вложены внутрь других циклов. В следующем примере мы вкладываем цикл for внутрь другого цикла for :

 $n = 9; for ($i = 1; $i echo $i * $j . ' '; > echo PHP_EOL; > //на выходе: 1 2 3 4 5 6 7 8 9 2 4 6 8 10 12 14 16 18 3 6 9 12 15 18 21 24 27 4 8 12 16 20 24 28 32 36 5 10 15 20 25 30 35 40 45 6 12 18 24 30 36 42 48 54 7 14 21 28 35 42 49 56 63 8 16 24 32 40 48 56 64 72 9 18 27 36 45 54 63 72 81 

С помощью цикла for выведите на экран числа от 1 до 100.

 $n = 100; for ($i = 1; $i echo $i . ' '; > //на выходе: 1 3 5 7 . 97 98 99 100 

С помощью цикла for выведите на экран числа от 100 до 1.

 $n = 100; for ($i = $n; $i > 0; $i--) < echo $i . ' '; > //на выходе: 100 99 98 97 . 4 3 2 1 

Напишите цикл for, который печатает каждое четное число от 0 до 20. (Четное число — целое число, которое делится на 2 без остатка: −4, −2, 0, 2, 4, 6, 8,)

 $n = 20; for ($i = 0; $i echo $i . ' '; > //на выходе: 0 2 4 6 8 10 12 14 16 18 20 

Напишите цикл for, который печатает каждое нечетное число от 0 до 20. (Нечетное число — целое число, которое не делится на 2 без остатка: −3, −1, 1, 3, 5, 7, 9)

 $n = 20; for ($i = 1; $i echo $i . ' '; > //на выходе: 1 3 5 7 9 11 13 15 17 19 

Дополнительные упражнения с циклом for

Перед тем как набрать этот код, попытайтесь понять, что он делает.

 $n = 3; for ($i = 1; $i < $n; $i = $i + 1) < for ($j = 1; $j < $n; $j = $j + 1) < for ($k = 1; $k < $n; $k = $k + 1) < echo "I: , J: , K: " . PHP_EOL; > > > 
 I: 1, J: 1, K: 1 I: 1, J: 1, K: 2 I: 1, J: 2, K: 1 I: 1, J: 2, K: 2 I: 2, J: 1, K: 1 I: 2, J: 1, K: 2 I: 2, J: 2, K: 1 I: 2, J: 2, K: 2 

Источник

Изучаем циклы в PHP: цикл for с примерами

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

Оператор цикла for в PHP

Цикл for в PHP выполняет блок кода определенное количество раз на основе счетчика. При этом количество раз, которое блок кода должен быть выполнен, определяется предварительно до входа в тело цикла.

for является одним из самых сложных видов цикла. В PHP цикл for ведет себя аналогично C . Ниже приведена структура синтаксиса:

for(expression1;expression2;expression3) statement;

В приведенном выше описании ключевое слово for указывает на цикл. В скобках определяются выражения, а затем инструкция, которую необходимо выполнить.

Как работает цикл for в PHP?

Чтобы понять, как работает цикл for , нам нужно понять эти три выражения. Выражение: expresison1 является первым, которое выполняется только один раз перед входом в цикл. Оно выполняется безоговорочно. Это значит, что первый раз перед входом в цикл выражение будет выполнено.

Expresison1 называется инициализирующим выражением, поскольку оно используется для инициализации счетчика, который используется в выражениях expression2 и expression3 .

Expression2 ( проверка условия ) проверяется для того, чтобы определить разрешает ли условие выполнить инструкцию или нет. Первый раз оно запускается после expression1 , затем — перед входом в цикл.

Обычно expression2 содержит условный оператор, чтобы проверить, возвращает ли условие true или false . Если условие вернет true , тогда будет выполняться оператор, написанный в цикле.

Expression3 выполняется в конце каждой итерации после оператора цикла. Обычно программисты называют его выражением инкремента. Оно используют это выражение для увеличения значения счетчика, который был инициализирован в expression1 и проанализирован в expression2 .

Все три выражения не являются обязательными. Также можно создать PHP цикл, как показано ниже:

for(;expression2;expression3) statement;

Если у нас несколько строк в цикле for , используйте фигурные скобки, как показано ниже:

for(expression1;expression2;expression3)

Блок-схема цикла for

На первом шаге выполняется выражение expression1 . Если вы внимательно посмотрите блок-схему, то обнаружите, что для expression1 не существует условия. Выражение expression1 похоже на поток выполняемой программы.

На следующем шаге сразу после выражения expression1 выполняется expression2 . Оно проверяет, выполняется ли условие цикла. Если условие истинно, то дальше будет выполняться цикл, иначе поток выйдет из цикла.

Если expression2 вернет true , то на третьем шаге будет выполнен оператор, написанный в цикле for . После этого будет выполнено третье выражение expression3 .

После выполнения выражения expression3 поток снова проверяет expression2 , и цикл продолжается до тех пор, пока expression2 не вернет false .

Простой пример цикла for в PHP

Рассмотрим случай, когда нужно вывести на экран числа от 1 до 10 через запятую. Ниже приведен код:

Выражение $i=1 является expression1 , которое выполняется безоговорочно. Мы используем expression1 для инициализации переменной, равной $i=1 .

Expression2 – это выражение $i :

Сложное выражение в цикле for

Можно написать три выражения в цикле for . Мы можем написать несколько операторов в каждом выражении в цикле for . Операторы нужно разделить запятой.

Рассмотрим пример предыдущего кода для вывода числа от 1 до 10 . С помощью нескольких операторов в выражении можно написать код, приведенный ниже:

Здесь выражение expression3 – это print $i.’,’, $i++ , которое объединяет два оператора, один – print $i. ‘,’ , а второй – $ i++ .

Выше приведен пример, в котором мы использовали несколько операторов в выражении expression3 . Но также можно использовать несколько операторов в любом выражении. Например:

for($i=1, print 'Hi Loop is from Here'; $i

Аналогично можно вывести все нечетные числа меньше 10 с помощью следующего кода:

for($i=1, print 'Hi Loop is from Here'; $i

Массив и цикл for в PHP

С помощью PHP цикла for можно выполнять итерацию в массиве. Например, у нас есть массив, который содержит имена разных людей. Нам нужно вывести на экран все имена:

$names = array('Ankur', 'John', 'Joy'); $count = count($names); for($counter=0;$counter

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

$names = array( array('id' => 1, 'name' => 'Ankur'), array('id' => 2, 'name' => 'Joe'), array('id' => 3, 'name' => 'John'), ); $count = count($names); for ($counter = 0; $counter

Вложенный цикл for

Можно использовать вложенный цикл for в PHP . Пример:

$metrix = array( array(1, 2, 3), array(2, 1, 3), array(3, 2, 1), ); $count = count($metrix); for ($counter = 0; $counter < $count; $counter++) < $c_count = count($metrix[$counter]); for ($child = 0; $child < $c_count; $child++) < echo $metrix[$counter][$child]; >>

У нас есть многомерный массив, и мы используем два цикла for PHP для отображения значений его элементов.

При использовании вложенного цикла можно использовать выражение родительского цикла for в дочернем. Например:

Приведенная выше программа является одной из самых популярных для вывода символа * в форме прямоугольного треугольника.

Инкремент в цикле for

Почти в каждом из приведенных выше примеров мы использовали выражение expression3 , то есть последнее выражение в качестве инструкции инкремента. Также мы часто увеличивали значение на единицу во всех примерах, например, $i++ или $j++ и так далее. Но мы можем увеличивать счетчик в соответствии с нашими требованиями. Например, чтобы вывести все нечетные числа от 1 до 15 , можно инициализировать цикл значением 1 и выполнять итерации до 15 , увеличивая счетчик на 2 :

Результатом работы приведенного выше кода будет « 1,3,5,7,9,11,13,15 ». Здесь мы увеличиваем переменную счетчика на +2 с помощью выражения $counter=$counter+2 .

Выход из цикла for

Можно прервать цикл при определенном условии, используя ключевое слово break . Оно не является частью цикла и используется для прерывания выполнения операторов for , foreach , while , do-while и switch . Давайте посмотрим, как ключевое слово break останавливает цикл for .

Простой пример, в котором мы выводим все числа в массиве до 100 :

$series = array(1, 8, 5, 3, 100, 9, 7); for ($i = 0, $count = count($series); $i echo $series[$i] . ' '; >

Здесь мы прерываем цикл, проверив, равно ли значение элемента массива 100 .

Также можно прервать вложенный PHP цикл по массиву, передав глубину, например, break 1 , break 2 и так далее. Посмотрите приведенный ниже пример:

Здесь break 1 прерывает оператор switch , но break 2 прервет текущий оператор, а также родительский, то есть и switch , и for .

Использование continue в цикле for

В предыдущем разделе мы узнали, как выйти из цикла. Но что, если нужно пропустить одну итерацию цикла и вернуться назад к циклу? Для этого в PHP есть ключевое слово continue .

Вспомним пример вывода нечетных чисел. Все, что мы сделали, это начали цикл с 1 , увеличивали счетчик на 2 и выводили результат. Реализуем этот пример, используя continue :

В приведенном выше примере мы проверяем выражение $i%2 == 0 , и если оно верно, используя ключевое слово continue , мы пропускаем остальную часть цикла и возвращаемся к выражению expression3 ($i++) , а затем к expression2 ($i :

Иногда нужно перенести данные из таблицы базы данных в массив с помощью PHP :

 10001, 'name' => 'Ankur', 'country' => 'India'), array('id' => 20002, 'name' => 'Joy', 'country' => 'USA'), array('id' => 10003, 'name' => 'John', 'country' => 'UK'), array('id' => 20001, 'name' => 'Steve', 'country' => 'France'), ); ?>  ' . '' . '' . '' . ''; > ?>
ID Name Country
' . $table_data[$i]['id'] . '' . $table_data[$i]['name'] . '' . $table_data[$i]['country'] . '

Приведенный выше код будет генерировать таблицу.

Я постарался рассказать о PHP цикле for как можно проще. Но если у вас есть какие-либо вопросы, пожалуйста, задавайте их в комментариях.

МЛ Мария Логутенко автор-переводчик статьи «

Источник

Читайте также:  Вычислить значения функции java
Оцените статью