Урок 15. Работа с циклами в PHP

Урок 15. Работа с циклами в PHP

Создание и раскрутка сайтов

Вбиваю в ТОП-10, как гвозди

8-965-148-98-02, diplom07@mail.ru

Создание и раскрутка сайтов

Вбиваю в ТОП-10, как гвозди

8-965-148-98-02, diplom07@mail.ru

Урок 15. Работа с циклами в PHP

Урок 15. Работа с циклами в PHP

www.homa.xp3.biz

Теория

Цикл в цикле

Циклы можно вкладывать друг в друга.

Задача

Вывести строку '111222333444555666777888'. Надо запустить 2 вложенных друг в друга цикла: 1-й цикл будет перебирать числа (1, 2 и т.д.), а 2-й цикл будет повторять эти числа 3 раза.

Решение

<?for($i=1;$i<=8;$i++){for($j=1;$j<=3;$j++){echo$i;/*Выводит '111', потом '222' и т.д.*/}}?>

111222333444555666777888

Внимание! 1-й цикл имеет счетчик i, 2-й j, а если будет еще и 3-й, то у него будет счетчик k (так принято).

Пирамиды

Строка 'xxxxxxxx'

Сделать строку, заполненную 8 'x'.

Для этого сделаем переменную s и при каждом проходе цикла добавим в нее 1 букву 'x'. Сначала в s будет '', потом 'x', потом 'xx' и т.д., пока цикл не закончится.

После цикла мы получится нужная строка:

<?$s='';/*Начальное значение - пустые кавычки*/for($i=0;$i<8;$i++){$s.='x';}echo$s//Выведет 'xxxxxxxx'?>

xxxxxxxx

Задача напоминает суммирование элементов массива, только вместо чисел суммируются строки, постепенно накапливая результат в переменной s.

Пирамида с 'x'

Вывести пирамиду:

x

xx

xxx

Изменим предыдущую задачу, при каждом проходе цикла выводим содержимое s и <p>.

Т.к. в цикле s постепенно растет, то сначала выведется 'x' и <p>, потом 'xx' и <p> и т.д.:

<?$s='';for($i=0;$i<8;$i++){$s.='x';echo$s.'<p>';}?>

x

xx

xxx

xxxx

xxxxx

xxxxxx

xxxxxxx

xxxxxxxx

Строка '12345678'

Сделать строку '12345678'. Задача аналогична задаче с 8 'x', только прибавлять будем не 'x', а счетчик цикла:

<?$s='';for($i=1;$i<=8;$i++){$s.=$i;}echo$s//Выведет '12345678'?>

12345678

Пирамида с цифрами

Вывести пирамиду:

111

222

333

Похожую задача была ('111222333444555666777888'). Нужна такая же строка, но с <p> в нужных местах. Запускаем 2 вложенных друг друга цикла:

<?for($i=1;$i<=8;$i++){for($j=1;$j<=3;$j++){echo$i;}echo'<p>';/*Выводит <p>, чтобы было в столбик*/}?>

111

222

333

444

555

666

777

888

Пирамида с цифрами

Вывести пирамиду:

1

22

333

Задача аналогична предыдущей, только внутренний цикл должен крутиться не 3 раза, а в соответствии с числом: если у нас 1, то повторяем цикл 1 раз, если 2, - 2 раза, если 3, - 3 раза.

Надо в условии внутреннего цикла написать следующее: $j<=$i. В этом случае, если $i=1, то это все-равно, что в условии написать $j<=1, а если $i=2, то $j<=2 и т.д.:

<?for($i=1;$i<=8;$i++){for($j=1;$j<=$i;$j++){echo$i;}echo'<p>';}?>

1

22

333

4444

55555

666666

7777777

88888888

В этой пирамиде не используется накопление в строку. Можно и с накоплением, но это получится чуть сложнее:

<?for($i=1;$i<=8;$i++){$s='';/*Каждый раз зачищаем строку*/for($j=1;$j<=$i;$j++){$s.=$i;}echo$s.'<p>';}?>

1

22

333

4444

55555

666666

7777777

88888888

While без заданного количества итераций

Бывают задачи, в которых количество итераций цикла неизвестно заранее. К примеру: дано число, нужно делить его на 2 столько раз, пока результат не станет меньше 8. Нужно вывести число, которое при этом получится.

В этом случае мы не знаем количество итераций. Сделаем условием цикла условие пока число больше 8:

<?$n=88;while($n>=8){$n=$n/2;}echo$n?>

5.5

Можно использовать и цикл for. В этом случае он будет без тела (без [] и в конце ставим точку с запятой):

<?for($n=88;$n>=8;$n=$n/2);echo$n?>

5.5

Если не поставить точку с запятой в конце цикла, следующая строчка попадет под цикл и повторится столько раз, сколько итераций в цикле.

<?for($n=88;$n>=8;$n=$n/2)echo$n.'<p>'?>

88

44

22

11

Отвечу на любые вопросы. С уважением, Дмитрий Владимирович:
8-965-148-98-02, diplom07@mail.ru.
Печатать страницу: Урок 15. Работа с циклами в PHP

Урок 15, Работа с циклами в PHP, Урок, 15, Работа, с, циклами, в, PHP, создание, сайта, веб, заказ, web, дизайн, раскрутка, продвижение, новый, сайт, рейтинг, сео, seo, Создание сайтов, web-программирование, seo-продвижение, создание и раскрутка сайтов, вбиваю в топ-10, как гвозди, попробуйте бесплатно, Создание сайтов, web-программирование, seo-продвижение, Урок, 15, Работа, с, циклами, в, PHP, создание, сайта, веб, заказ, web, дизайн, раскрутка, продвижение, новый, сайт, рейтинг, сео, seo, создание, сайта, веб, заказ, web, дизайн, раскрутка, продвижение, новый, сайт, рейтинг, сео, seo, раскрутка сайтов, Вбиваю в ТОП-10, как гвозди, раскрутка сайтов, Делаю и раскручиваю сайты, Дмитрий Владимирович

×

Ваше письмо