вторник, 21 апреля 2015 г.

Урок 1: Условный оператор if


Условный оператор IF служит для организации процесса вычислений (изменения последовательности выполнения операторов) в зависимости от какого-либо логического условия.
Синтаксис оператора IF:
IF Условие THEN Оператор1 ELSE Оператор2;
или
IF Условие THEN Оператор;

                                                    Блок-схема условного оператора

Условие может быть представлено логической константой (FALSE – ложь, TRUE - истина), переменной логического типа (Boolean) или логическим выражением.

Если условие истинно, то выполняется оператор (простой или составной), следующий за словом THEN, в противном случае, когда условие ложно, будет выполняться оператор, следующий за словом ELSE. Альтернативная ветвь ELSE может отсутствовать, если в ней нет необходимости. В таком “усеченном” варианте, в случае, если условие оказывается ложным, ничего не происходит и выполняется оператор следующий за условным оператором IF.

Пример 1.

Пусть необходимо составить программу, вычисляющую значение функции:


VAR
  x, y : real;
BEGIN
  Write(‘Введите значение аргумента: ’); ReadLn(x);
  IF x>0 THEN y := x
         ELSE y := 0;
  Write(‘Значение функции y = ’, y)
END.
Условные операторы могут быть вложенными друг в друга:
IF Условие THEN if ПодУсловие then ... else ...
                  ELSE ...;

Обратите внимание на отсутствие точки с запятой между ключевыми словами.

При вложениях условных операторов самое главное – не запутаться в вариантах сочетаний условий (отчасти этому может помочь ступенчатая форма записи операторов). Всегда действует правило: альтернатива ELSE считается принадлежащей ближайшему условному оператору IF, не имеющему ветви ELSE. Например:
IF Условие1 THEN if Условие2 then Оператор_А
            ELSE Оператор_Б;


По записи может сложиться впечатление, что Оператор_Б будет выполняться только при “невыполнении” Условия1. Но на самом деле он будет отнесен к Условию2 и выполнится только при выполнении Условия1 и невыполнении Условия2! Если необходимо, чтобы Оператор_Б выполнялся именно при невыполнении Условия1, то единственный выход таков: заключить вложенный (усеченный) оператор IF в операторные скобки begin…end:
IF Условие1 THEN begin
                   if Условие2 then Оператор_А
                 end
            ELSE Оператор_Б;

В условии оператора IF может стоять достаточно сложное логическое выражение.

Комментариев нет:

Отправить комментарий