Инструкция if определяет, является ли истинным какое-либо условие и в соответствии с этим выполняет некоторую последовательность инструкций. Ниже приведен простейший пример, в котором проверяется равенство A и B; если оно выполняется, A принимает значение, равное B плюс один. В противном случае, A принимает значение, равное B минус один:
if A = B then A := B + 1; else A := B - 1; end if;
Ниже приведена полная BNF для инструкции if:
Инструкция_if ::= "if" условие "then" последовательность_инструкций {"elsif" условие "then" последовательность_инструкций} ["else" последовательность_инструкций] "end if;"
Как и в других алгоритмических языках, если `условие` является истинным, выполняется то, что следует за `then' . В противном случае будут просмотрены выражения elsif (если таковые присутствуют) начиная с первого до последнего, до нахождения выполняющегося условия. Наконец, если ни одно из условий не является истинным, выполняется выражение "else" (если оно существует).
Заметим, что ключевое слово "then" является обязательным (в С и С++ оно отсутствует).
Чему равно конечное значение А в приведенной последовательности инструкций?
A := 5; B := 6; if A > B then A := 7; else A := A - 2; end if;
Перейти к предыдущему разделу | Перейти к следующему разделу | Вернуться к содержанию Урока 5 |
---|
David A. Wheeler (dwheeler@ida.org)
Исходная копия этого документа находится по адресу
"http://www.adahome.com/Tutorials/Lovelace/s5s1.htm".
Исходная копия перевода размещена на сайте http://www.ada-ru.org
Перевод: Юрий Королев
Общая редакция перевода: Г.Ю. Сисюк