print "\n", rand; # вывести с новой строки случайное число
}
Еще один тип цикла предназначен для перебора всех элементов списка, для чего каждый его элемент последовательно помещается в указанную переменную. Это цикл
foreach переменная (список) { #
# работа с переменной, содержащей
# текущий элемент обрабатываемого списка
}
Примеры использования цикла
В Perl есть несколько предложений для управления выполнением программы с помощью перехода в указанную точку программы. Обычно это требуется при работе с циклами. Когда при работе цикла требуется досрочно закончить его выполнение при наступлении какого-то события, то для этого можно воспользоваться оператором
$i = 0;
while (1) { # безусловно входим в цикл
$random = rand; # получаем случайное число
if ($i == 10) { # по достижении счетчика 10
last; # ПРЕРЫВАЕМ выполнение цикла
}
if ($random < 0.5) { # числа меньше 0.5
print "\n", $random; # выводим на консоль
$i++; # и увеличиваем счетчик повторений
}
}
# сюда произойдет переход по last
Оператор
$i = 0;
while ($i < 10) { # пока счетчик не достигнет 10
$random = rand; # получаем случайное число
if ($random > 0.5) { # числа больше 0.5
next; # ПРОПУСКАЕМ действия в теле цикла
}
print "\n", $random; # выводим число на консоль
$i++; # и увеличиваем счетчик повторений
# сюда произойдет переход по next
}
Оператор
$i = 0;
while ($i < 10) { # пока счетчик не достигнет 10
# сюда произойдет переход по redo
$random = rand; # получаем случайное число
if ($random > 0.5) { # числа больше 0.5
redo; # СНОВА НАЧИНАЕМ действия в теле цикла
}
print "\n", $random; # выводим число на консоль
$i++; # и увеличиваем счетчик повторений
}
Во всех рассмотренных циклах может присутствовать необязательный блок continue. В нем располагаются действия, которые нужно выполнить в конце цикла, в том числе при переходе к новой итерации по
# может быть заголовок цикла: while, until или for
{
# сюда происходит переход по redo
# действие 1, выполняемое в цикле
if (условие выхода) {
last; # выход из цикла
}
# действие 2, выполняемое в цикле
if (условие продолжения) {
next; # выполнение следующей итерации цикла
}
# действие 3, выполняемое в цикле
if (условие возобновления) {
redo; # выполнение тела цикла сначала
}
# действие N, выполняемое в цикле
# сюда происходит переход по next
} continue {
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии