Составной и условный операторы
Урок 4. Составной и условный операторы
Блок операторов — это последовательность операторов, заключенная в парные фигурные скобки. Блок операторов выглядит следующим образом: { оператор 1; оператор 2; оператор 3; ..... оператор n; }
Perl выполняет операторы по очереди, начиная с первого и кончая последним. Синтаксически блок операторов принимается вместо любого одиночного оператора, но обратное не верно. Точка с запятой после последнего оператора ставить не обязательно.
Условный оператор IF
IF (EXPR){operator} IF (EXPR){operator} else {operator1} IF (EXPR){operator} elsif (EXPR2){operator2} ... else{operator3} {operator} IF (EXPR)
Условный оператор позволяет проверять некоторое условие и в зависимости от результатов проверки выполнять то или иное действие. Таким образом, условный оператор - это средство позволяющее ветвись вычислительный процесс. Условный оператор работает по следующему алгоритму: Вначале вычисляется условное выражение EXPR. Если оно истинно, выполняется блок "operator" и программа выполняется дальше. Если EXPR ложное, проверяется условие EXPR2. Если оно истинное, выполняется блок "operator2" и программа выполняется дальше, иначе выполняется блок operator3. Примечание: проверяемых условий может быть сколько угодно. С помощью этого свойства оператора IF можно реализовывать многочисленное ветвление программы.
Оператор Unless
Unless имеет такой же синтаксис как и IF, но отличается от него тем, что блоки выполняются не при истинных значениях условий, а при ложных.
* * * *
Следующая программа демонстрирует работу оператора IF в сокращенной форме:
#!/usr/bin/perl #programm 4 print "Content-Type: text/html\n\n"; $var = 23; if ($var%2){$mess="не четное"}else{$mess="четное"} print "$var -$mess число";
Как работает оператор IF в этой программе:
Как Вы помнете, выражение принимает значение True если оно не равно 0 или пустой строке. Наличие остатка от деления на 2 является признаком его нечетности. Значит если есть остаток, выражение истинно, и выполняется первый блок. Если остатка нет, значение ложно и выполняется второй блок.
* * * *
Напишите программу, которая сообщает о состоянии воды при различных температурах (счисление по Кельвину). Температуру задайте в переменной $temperature. Сделайте проверки на непригодные значения (температура по K никогда не бывает отрицательной.)
Ответьте на вопросы:
- Посчитается ли ошибкой, если после последнего оператора программы не стоит точка с запятой? О чем это говорит?
- Как продолжет свое выполнение программа, если ни одно из условий следующей конструкции не будет истинно: IF (EXPR){operator} elsif (EXPR2){operator2} ?
Перепишите программу 4, чтобы вместо оператора IF использовался оператор Unless.
Дополнительная информация: [Управляющие структуры ] [Управляющие структуры 2 ]