Similar presentations:
Циклы PHP. (Лекция 6)
1.
Лекция №6Циклы PHP
Жеретинцева Наталья Николаевна к.т.н., доцент кафедры АИС МИИТ
МГУ им. Г. И. Невельского
2.
Циклы в PHPНа втором месте по частоте использования, после конструкций
условий (условных операторов), находятся циклы.
Циклы позволяют повторять определенное (и даже
неопределенное - когда работа цикла зависит от условия)
количество раз различные операторы. Данные операторы
называются телом цикла. Проход цикла называется итерацией.
PHP поддерживает три вида циклов:
Цикл с предусловием (while);
Цикл с постусловием (do-while);
Цикл со счетчиком (for);
Специальный цикл перебора массивов (foreach).
Циклы PHP
2
3.
Цикл с предусловием WHILEПростейший тип цикла в PHP. Заставляет PHP выполнять
вложенные операторы до тех пор, пока условие равно TRUE. Если
условие равно FALSE с самого начала, то цикл не выполнится не
разу.
Синтаксис: WHILE (условие) выражения
Можно сгруппировать несколько операторов внутри фигурных
скобок или использовать альтернативный синтаксис :
WHILE (условие) выражения... ENDWHILE;
$a=1;
while ($a<=5)
{
echo $a++;
}
$a=1;
while ($a<=5):
echo $a;
$a++;
endwhile;
Циклы PHP
3
4.
Цикл с постусловием WHILEГлавное отличие цикла while от do-while в том, что do-while
всегда выполняется хотя бы один раз даже если условие
изначально ложно. Например:
$i=0;
while ($i > 0)
{
echo ‘ i больше нуля’ (while);
}
//не выводится ничего
$i=0;
do
{
echo ‘ i больше нуля (do-while) ’;
}
while ($i > 0)
//выводится “i больше нуля (do-while) “
Конструкции while и do-while очень удобно использовать при
построчном чтении из файла или обработке результатов запросов к
базам данных, т.к. заранее неизвестно, сколько раз надо будет
выполнить требуемый набор выражений.
Циклы PHP
4
5.
Арифметический циклСледующая конструкция for эта конструкция предполагает,
что количество итераций цикла заранее известно или вычислимо
до начала цикла.
For (переменная; условие; оператор)
{
выражение;
}
Блок «переменная» описывает переменную-счётчик и её
начальное значение, «условие» определяет количество итераций,
а «оператор» действие над переменной-счётчиком ПОСЛЕ
каждой итерации. Пример:
For ($i=0; $i<10; $i++)
{
echo “строка №”. $i. “<br>”;
}
Циклы PHP
5
6.
Арифметический циклЗдесь мы указали, что $i это переменная счётчик, считать
начинаем с нуля, после каждой итерации увеличиваем $i на
единицу, продолжаем итерации пока $i меньше 10.
Для цикла for совершенно не обязательно знать количество
итераций на этапе написания скрипта. Главное мы должны
суметь вычислить это количество и передать в цикл.
Код
программы
вычисления
количества
страниц,
отображаемых при выводе прайс-листа на товар
Код можно использовать, например, для создания навигатора
по страницам каталога товара. Общее кол-во элементов каталога
$row (100), кол-во одновременно отображаемых на странице
$row_per_page (16).
Для каждой страницы создаем соответствующую ссылку и
выводим готовую строку навигации.
Циклы PHP
6
7.
Арифметический цикл<?php
$rows = 100;
$rows_per_page = 16;
$pages = ceil($rows / $rows_per_page);
$page_line = ‘ ‘;
For ($i = 0; $i < $page; $i ++)
{
$page_line . = ‘<a href = “?page=‘ . $i . ‘ ”>[‘ . ($i +1) . ‘]</a>’ ;
}
echo $page_line;
// выведет “[1] [2] [3] [4] [5] [6] [7] “;
Циклы PHP
7
8.
Цикл foreachПоследняя конструкция циклов - foreach. Это самая простая и
самая своеобразная конструкция из рассмотренных конструкций.
Ее синтаксис приведен
foreach (массив as формат_элемента)
{
выражение
}
Здесь «массив» переменная типа array, созданная ранее, а
«формат_элемента» это формальное описание одного
элемента массива.
Циклы PHP
8
9.
Цикл foreachПоследняя конструкция циклов - foreach. Это самая простая и
самая своеобразная конструкция из рассмотренных конструкций.
Ее синтаксис приведен
$mas=array(1 => "Петя", 2 => "Вася", 3 => "Саша", 4 => "Федя");
foreach($mas as $value)
{
echo "$value <br />";
}
Здесь «массив» переменная типа array, созданная ранее, а
«формат_элемента» это формальное описание одного
элемента массива.
Циклы PHP
9
10.
Цикл foreachПри использовании многомерных массивов в foreach они будут
интерпретироваться как вложенные ассоциативные массивы. Если
в примере ниже $name будет двумерным массивом, то $param
будет содержать номер массива перового уровня, а $value
массив второго уровня.
$name=array('Фамилия'=>'Пак', 'Имя' => 'Илья', 'ДР' => '23.05.1980');
foreach($name as $param => $value)
{
echo $param. ': '.$value. '<br />';
}
Циклы PHP
10
11.
Задания №1 по циклам№
Задание
1
Даны два целых числа A и B (A < B). Найти S всех целых чисел от A до B.
2
Даны два целых числа A и B (A < B). Найти P всех целых чисел от A до B.
3
Даны два целых числа A и B (A < B). Найти сумму квадратов целых чисел от A до B.
4
Дано целое число N (> 0). Найти сумму ряда 1 + 1/2+ 1/3 + … + 1/N
5
Дано целое число N (> 0). Найти сумму N2 + (N + 1)2 + (N + 2)2 + … + (N+N)2
6
Дано вещественное число A и целое число N (> 0). Найти A в степени N
7
Дано вещественное число A и целое число N (> 0). Используя один цикл, найти
сумму 1+A+A2+A3+…+AN.
8
Даны натуральные числа от 20 до 50. Напечатать те из них, которые делятся на 3,
но не делятся на 5
9
Даны натуральные числа от 35 до 87. Найти и напечатать те из них, которые при
делении на 7 дают остаток 1, 2 или 5
10 Даны натуральные числа от 1 до 50. Найти сумму тех из них, которые делятся на 5
или на 7.
11 Напечатать те из двузначных чисел, которые делятся на 4, но не делятся на 6.
12 Найти произведение двузначных нечетных чисел, кратных 13.
13 Даны натуральные числа от 10 до 43.
Напечатать
те из них, которые делятся на 4,
Циклы
PHP
11
12.
Задания №2 по циклам№
Задание
1
Спортсмен в первый день пробежал 10 км. Каждый день он увеличивал норму на
10% нормы предыдущего дня. Какой суммарный путь он пробежит за 7 дней?
2
Спортсмен в первый день пробежал 12 км. Каждый день он увеличивал норму на
15% нормы предыдущего. В какой день впервые спортсмен пробежит более 20 км?
3
Спортсмен в первый день пробежал 15 км. Каждый день он увеличивал норму на
12% нормы предыдущего. В какой день впервые суммарный путь превысит 60 км?
4
Составить программу, определяющую, является ли данное число N простым
5
Дано целое число N (> 1). Найти наименьшее целое число K, при котором
выполняется неравенство 3K > N.
6
С клавиатуры вводятся числа и последовательно суммируются. Найти количество
введенных чисел, когда их сумма превысила 100.
7
Дано целое число N (> 0). Используя операции деления нацело и взятия остатка от
деления, найти количество и сумму его цифр.
8
Даны натуральные числа от 20 до 50. Напечатать те из них, которые делятся на 3,
но не делятся на 5
Циклы PHP
12
13.
Задания №2 по циклам№
9
Задание
Дано целое число N (> 0). С помощью операций деления нацело и взятия остатка от
деления определить, имеется ли в записи числа N цифра «2». Если имеется, то
вывести True, если нет — вывести False.
10 Дано целое число N (> 0). С помощью операций деления нацело и взятия остатка от
деления определить, имеются ли в записи числа N нечетные цифры. Если имеются,
то вывести True, если нет — вывести False.
11 Спортсмен-лыжник начал тренировки, пробежав в первый день 10 км. Каждый
следующий день он увеличивал длину пробега на P процентов от пробега
предыдущего дня (P — вещественное, 0 < P < 50). По данному P определить, после
какого дня суммарный пробег лыжника за все дни превысит 200 км, и вывести
найденное количество дней K (целое) и суммарный пробег S (вещественное число).
12 Дано целое число N (> 1). Вывести наименьшее из целых чисел K, для которых
сумма 1 + 2 + … + K будет больше или равна N, и саму эту сумму.
13 Спортсмен-лыжник начал тренировки, пробежав в первый день 8 км. Каждый
следующий день он увеличивал длину пробега на P процентов от пробега
предыдущего дня (P — вещественное, 0 < P < 30). По данному P определить, после
какого дня суммарный пробег лыжника за все дни превысит 200 км, и вывести
найденное количество дней K (целое) и суммарный пробег S (вещественное число).
Циклы PHP
13