Раздел 5.1 - Инструкция If

В теле подпрограммы, между "is" и "end <имя>" находится последовательность_инструкций. Последовательность_инструкций, собственно, и является последовательностью инструкций, каждая из которых заканчивается точкой с запятой. Существует множество видов инструкций; мы уже рассмотрели инструкции присваивания и вызова процедур. Теперь мы изучим несколько других типов инструкций, начиная с инструкции if .

Инструкция 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;
  1. 3
  2. 5
  3. 7

Вы можете также:

PREVIOUS Перейти к предыдущему разделу

NEXT     Перейти к следующему разделу

OUTLINE  Вернуться к содержанию Урока 5

David A. Wheeler (dwheeler@ida.org)

Перевод: Юрий Королев   Общая редакция перевода: Г.Ю. Сисюк

Исходная копия этого документа находится по адресу "http://www.adahome.com/Tutorials/Lovelace/s5s1.htm".

Исходная копия перевода размещена на сайте http://www.ada-ru.org