| 
 Урок 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] 
[приложение Б] 
[приложение В] 
[заключение] 
[благодарности] 
 
  |