Урок 7. Метки, оператор перехода, операторы управления циклами Оператор GOTO
goto метка;
Можно теоретически показать, что рассмотренных операторов вполне достаточно для написания программ любой сложности. В этом отношении наличие в языке оператора перехода кажется излишнем. Более того технология структурного программирования основана на принципе "программирование без GOTO": считается, что использование оператора перехода затрудняет понимание программы, делает её запутанней и сложной в отладке.
Тем не менее, в некоторых случаях использование оператора перехода может упростить программу.
В Perl метки обозначаются ЗАГЛАВНЫМИ латинскими буквами и отделяются от следующего за ним оператора двоеточием (:).
Оператор Next
next - подобен continue в С. Переходит к началу текущего цикла (блок continue вычисляется) т.е. повторяет итерацию. Оператор Last
last - подобен оператору break в языке С. Немедленно прерывает цикл. Блок continue пропускается Оператор Redo
redo - начать новый цикл не вычисляя EXPR и не выполняя continue блок.
* * * *
Пример применения оператора next:
#!/usr/bin/perl
print "Content-Type: text/html\n\n";
M1:
while ($i < 6)
{
++$i; # Увеличиваем счетчик на 1
next M1 if $i < 3; # Переходим в начало если $i < 3
++$i; # иначе увеличиваем счетчик еще раз на 1
}
continue
{
print "$i "; # Печатаем $i
}
# получаем 1 2 4 6
Пример применения оператора last:
#!/usr/bin/perl
print "Content-Type: text/html\n\n";
M1:
while ($i < 6)
{
++$i; # Увеличиваем счетчик на 1
last M1 if $i > 3; # Выход из цикла если $i > 3
++$i; # иначе увеличиваем счетчик еще раз на 1
}
continue
{
print "$i "; # Печатаем $i
}
# результат: 2 4
Пример применения оператора redo:
#!/usr/bin/perl
print "Content-Type: text/html\n\n";
M1:
while ($i < 6)
{
++$i; # Увеличиваем счетчик на 1
redo M1 if $i == 3; # Далее пропустить для $i = 3
++$i; # иначе увеличиваем счетчик еще раз на 1
}
continue {
print "$i "; # Печатаем $i
}
# получим 2 5 7
* * * *
Напишите программу, выводящую все простые числа из диапазона (-28..53) включительно. Есть ли вообще простые числа в этом диапазоне?
Для справки: простое число, это такое число, которое дилится без остатка только на себя и еденицу.
Напишите программу, вычисляющую произведение двух соседних числа ряда из диапазона (-28..53), и если это число делется без остатка на 7, выводит результат на экран и увеличивает переменную цикла на 2.
[Содержание]
[Вступление]
[необходимое для начала изучения]
[урок 1]
[урок 2]
[урок 3]
[урок 4]
[урок 5]
[урок 6]
[урок 7]
[урок 8]
[урок 9]
[урок 10]
[урок 11]
[урок 12]
[урок 13]
[урок 14]
[урок 15]
[урок 16]
[урок 17]
[урок 18]
[урок 19]
[урок 20]
[урок 21]
[урок 22]
[урок 23]
[урок 24]
[урок 25]
[урок 26]
[урок 27]
[урок 28]
[правила хорошего тона]
[приложение A]
[приложение Б]
[приложение В]
[заключение]
[благодарности]
|