Анимация
JavaScript
|
Главная Библионтека Оператор if позволяет также выполнить один фрагмент кода, если некоторое условие истинно, и другой фрагмент кода - если это условие ложно. Это достигается с помощью использования оператора if-else. Его синтаксис имеет вид if (выражение) f Если выражение истинно... БЛОК I .выполняется этот блок кода. Else БЛОК # В противном случае вьшолняется этот блок. Блок, следующий за выражением, выполняется, если оно истинно, а блок после ключевого слова else - если выражение ложно. Приведем пример использования описываемого оператора: $r=<STDIN>; chc $г; if ($r == 10) { print $r равно 10; } else { print $r не равно 10 . . . ; Sr=10; print $r присвоено значение 10; Обратите внимание, что в предыдущем примере для присваивания значения переменной ?г используется оператор =. Для проверки значения 5г используется оператор равенства Это два совершенно разн1х оператора с абсолютно различным действием. Не пайте их, иначе отладка ваших программ может сильно усложниться. Помните, что с помощью оператора = значения присваиваются переменным, а с помощью оператора == - выражение проверяется на равенство определенному значению. Существует еще одна разновидность оператора if, с помощью которой можно проверить значения нескольких выражений и выполнить код, соответствующий истинному условию: if (выражение!) БЛ0К1 elseif {вырс1Хевие2] БЛОК2 else БЛОКЗ t Есл «еяяе 1 истинно.;. It ..выполняется этот блок кода. t Иначе, если еяие2 истинно.. . этот блок кода; It Есл ни одно из выражений не истинно, i выполняется этот блок. Данный оператор выполняется следующим образом: если выражение, помеченное как выражение!, истинно - выполняется блок кода БЛОК!. Иначе управление передается oпepaтopyelseifипpoвepяeтcязнaчёниeвьфaжeнмJг2 Ecлинивsfpaл:e™eJ, нивырахвнив2 не являются истинными, выполняется БЛОКЗ. Для демонстрации такой синтаксической конструкции рассмотрим реальный фрагмент программы на Perl: 5г=10; inSr 10) { print $г равно 10 ! ; } elseif {$г ==20) { print ir равно 20!; } else { print $r не равно ни 10, ни 20; Другие операторы отношения До сих пор мы сравнивали значения лишь с помощью оператора равенства ==. В Perl имеется еще ряд операторов, предпазпачеппых для сравпепия числеппых зпаче- ний, большинство из них представлены в табл. 3.1. Таблица 3.1 .Числов1е операторе! отношения Оператор Обозначение Пример Описание
Эти операторы могут использоваться в любом месте программы для сравнения численных значений, например в операторе if, как показано в листинге Листан. в угад 1l: fl/usr/bin/perl -vf 3: $im thinking of=int(randlO) ; 4: pri£b Ъвециючисло от О до 9:"; 5: $guess=<STDIN>; 6: dntpSguess; •Вщеутш o/!EoaiEEakcs£a«a.\ 7: 8: if ($guess>$ira thinking of) { Э: print "Перебор!Nn"; 10: } elsif {$guess < Sim thinking of) { 11: print -Недобор:Vn"; 12: } else { 13: print "Ebi угадали!\n"; 14:} Проведем анализ программы. Строка 1. Это стандартная первая строка программ г). В ней указывается Полный путь к программе-интерпретатору, а ключ -w активизирует режим вьщачи предупреждений. На 1-м занятии, "Начало работы с Perl", мы говорили о том, что в каждом конкретном случае эта строка может несколько видоизменяться. Строка 3. Функция rand 10 генерирует случайное число в диапазоне от 0 до 10, а оператор int() возвращает его целую часть. Затем получившееся целое число от 0 до 9 присваивается переменной Строки В этом месте программы у пользователя запрашивается значе- ние, которое присваивается переменной $guess. С помощью функции chomp завершающий символ перевода строки удаляется. • Строки 8-9. Если значение неременной 5guess больше, чем неременной выводится соответствующее сообщение. • Строки 10-11. Если же значение неременной Sguess меньше, чем неременной Sim thinking of, выводится другое сообщение. • Строка 13. Оставшийся вариант - пользователь угадал число. Операторы в табл. 3.1 используются для сравнения лишь численных значений. Их использование для сравнения нечисловых данных приводит к неожиданному результату. Рассмотрим пример: $first="Simon"; Slast="simple"; if ($first == $last) { t == - совсем не то, что ожидали! Print "Значения нфеменных равны!\п"; В результате выполнения этого фрагмента кода окажется, что значения переменных $first и $last численно равны. На 1-м занятии, "Начало работы с Perl", говорилось, что если нечисловые строки используются там, где Perl ожидает встретить число, то вместо них подставляется нулевое значение. Поэтому предшествующее выражение оператора if в Perl равносильно следующему: if 0 ). Это выражение истинно, и результат действия оператора if совсем не такой, как вы, вероятно, ожидали. Если режим вывода предупреждений включен, то сравнение двух нечисловых значений (в предыдущем примере это Simon и simple) с помощью оператора == приведет к появлению соответствующего сообщения. Для сравнения нечисловых значений используйте другие операторы Perl, приведенные в табл. 3.2.
Чт I. cEi Perl 0 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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |