Операторы повторения с заданным количеством итераций
Урок 5. Операторы повторения с заданным количеством итераций
Операторы повторения (формирования циклов) служат для программирования циклически повторяющегося участка кода.
Оператор X
operator x (кол-во итераций);x - оператор позволяющий выполнить строго заданное кол-во раз только один оператор.
Оператор FOR
for (EXPR1; EXPR2; EXPR3) {operator}
Работа оператора FOR в Perl аналогична работе его в C и JavaScript:
Сначала вычисляется выражение EXPR1. Оно содержит в себе переменную цикла. Затем вычисляется EXPR2. Если его значение True, выполняется блок операторов. Иначе цикл завершается и программа выполняется дальше. После выполнения блока операторов вычисляется выражение EXPR3, затем EXPR2. Если его значение True, выполняется блок операторов. Иначе цикл завершается. И так далее до того как EXPR2 не станет False.
* * * *
Простейшая программа, демонстрирующая работу оператора FOR.
#!/usr/bin/perl #programm 5 print "Content-Type: text/html\n\n"; for($i=0;$iаргумент цикла читается следующем образом: "переменной $i присваиваем значение 0. Выполнять цикл пока $i меньше или равна 1000. Каждую итерацию $i инкрементировать". Эта программа вываливает на экран все числа начиная с 0 и заканчивая 1000.
Теперь поставим пере собой задачу вывести таблицу Пифагора в окно браузера. Диапазон чисел по оси X и Y совпадает и равен 2..9. #!/usr/bin/perl #programm 6 print "Content-Type: text/html\n\n"; print '<font face="courier new">'; for($i=1;$i<=9;$i++){ for($u=1;$u<=9;$u++){ if(($u*$i)/10 < 1){print" "} unless($u*$i==1){print $u*$i}else{print" "} print " "; } print"<br>"; } print '</font>';
Разберем как эта программа работает.
Выводим строку "<font face="courier new">". Этим мы выбираем тип шрифта, каким будут выводиться данные.
Начинаем новый цикл, в котором переменная $i изменяется от 1 до 9.
В него "вкладываем" еще один цикл, в котором переменная $u также изменяется от 1 до 9.
Проверяем условие: если произведение переменных циклов, деленных на 10 меньше единицы, выводим пустой символ (пробел), иначе ничего не делаем. Такая хитрая операция нужна для того чтобы все числа таблицы Пифагора имели одинаковые знакоместа. Это позволит построить правильно организованную таблицу.
Проверяем условие: если произведение переменных массивов не равно единице выводим их произведение, иначе выводим пустой символ. Эта операция нужна чтобы исключить единицу из наших осей таблицы.
Затем выводим пустой символ. Это нужно чтобы удалить столбцы таблицы друг от друга на один символ.
Когда внутренний цикл закончит выполняться, закончится и вывод первой строки. Выполнится вывод тэга переноса строки и внутренний цикл снова начнет выполняться но уже с другим значением переменной $i.
Когда внешний цикл отработает все 9 итераций, а внутренний 81-у итерацию, будет сделан вывод закрывающего тега font и программа успешно завершит свое выполнение, оставив на экране браузера так всеми ненавистную таблицу Пифагора.
* * * *
Модернизируйте программу таким образом, чтобы таблица Пифагора выводилась в виде HTML таблицы.
Реализуйте алгоритм закрашивания ячеек значений в шахматном порядке, а осей координат в один какой-нибудь цвет.
Как поведет себя цикл FOR, если в его теле изменять переменную цикла так, чтобы условия цикла всегда было истинно?
Дополнительная информация: [Управляющие структуры ] [Управляющие структуры 2 ]