PERL: БИБЛИОТЕКА ПРОГРАММИСТА


PERL: БИБЛИОТЕКА ПРОГРАММИСТА - стр. 81


' $num = bin2dec('0110110')      # $num = 54
$binstr = dec2bin(54);              # $binstr = 110110


74   Глава 2 • Числа

2.5. Действия с последовательностями целых чисел

Проблема

Требуется выполнить некоторую операцию со всеми целыми между X и Y. Подоб­ная задача возникает при работе с непрерывной частью массива или в любой си­туации, когда необходимо обработать все числа1 из заданного интервала.

Решение

Воспользуйтесь циклом for или .. в сочетании с циклом f о reach:

foreach ($X .    $Y)  {

# $_ принимает все целые значения от X до Y включительно

foreach $i ($X ..   $Y)  {

# $i принимает все целые значения от X до Y включительно

foreach ($1 = $Х; $i <= $Y; $i++) {

# $i принимает все целые значения от X до Y включительно

foreach ($i = $X; $1 <= $Y; $i+=7) {

# $i принимает целые значения от X до Y включительно с шагом 7

Комментарий

В первых двух методах используется конструкция $Х. . $Y, которая создает список всех целых чисел между $Х и $Y. Если $Х и $Y расположены далеко друг от друга, это приводит к большим расходам памяти (исправлено в версии 5.005). При орга­низации перебора последовательных целых чисел цикл for из третьего способа расходует память более эффективно.

В следующем фрагменте продемонстрированы все три способа. В данном слу­чае мы ограничиваемся выводом сгенерированных чисел:

print "Infancy is:"; foreach (0 .. 2) { print "$_ ";

}

print "\n";

print "Toddling is: "; foreach $i (3 .. 4) {

' Точнее, все целые числа. Найти все вещественные числа будет нелегко. Не верите — посмотрите у Кантора.


2.6. Работа с числами в римской записи    75

print "$i "; } print "\n";

print "Childhood is: ";

for ($1 = 5; $i <= 12; $i++) <

print "$i "; > print "\n";

Infancy is: 0 1 2

Toddling is: 3 4

Childhood is: 5 6 7 8 9 10 11 12

 Смотри также

Описание операторов for и foreach в perlsyn(l).

2.6. Работа с числами в римской записи




Начало  Назад  Вперед