Иллюстрированный самоучитель по Perl




Разные операции - часть 3


#! peri -w

$left =3; # Операнд! $right =2; # Операнд2

# Заголовок таблицы

print "\$i\tflnana3OH\tOnepaHfll\tOnepaHfl2\n";

print '-' х 48, "\n\n";

# Тест операции

for($1=1; $i <= 10; $i++) {

$s = $left..$right;

print "$i\t $s\t\t $left \t\t $right\n";

$slO = 3 if $i==5; # Когда переменная цикла $i равна 5, # $slO устанавливается равной 3.

if ($right==0) {} else {—$right}; # Уменьшение $right на 1, пока

# $right не достигла значения 0.

—$left; }

Замечание

В целях экономии времени мы не объясняем смысл незнакомых операторов примера 4.12, надеясь, что читатель сможет понять их смысл. Если все же это окажется для него сложным, мы рекомендуем снова вернуться к этой программе после прочтения главы 5.

$1 Диапазон Операнд1 Операнд2
1 1ЕО 3 2
2 1ЕО 2 1
3 1 1 0
4 2 0 0
5 3 -1 0
6 4EO -2 2
7 1EO -3 1
8 1 -4 0
9 2 -5 0
10 3 -6 0

Сделаем замечания относительно работы программы примера 4..12. На первом шаге цикла левый операнд операции диапазон истинен, следовательно сама операция находится в состоянии Истина и возвращает первое порядковое число (i). Но правый операнд становится также истинным ($right = 2), следовательно она переходит в состояние Ложь и к возвращаемому ей значению добавляется строка "ЕО". На втором шаге цикла левый операнд истинен ($ieft = 2) и операция переходит в состояние Истина, возвращая значение д, к которому опять добавляется строка "ЕО", так как истинный правый операнд ($ right = 1) переводит операцию в состояние Ложь.

На третьем шаге операция становится истинной ($ieft = 1), возвращая i, и правый операнд со значением Ложь ($right = о) не влияет на ее состояние. На следующих шагах 4 и 5 правый операнд остается ложным, а операция возвращает соответственно следующие порядковые числа 2 и з. На шаге 6 операция находится в состоянии Истина и возвращает 4, но правый операнд, принимая значение Истина ($right = о), переводит ее в состояние Ложь, в котором к возвращаемому значению добавляется строка "ЕО" и т. д.




Содержание  Назад  Вперед