Создание серверных приложений на языке PERL

1eeb656d

Составной и условный операторы



Урок 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 ]



Содержание раздела