Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Оператор и конструкция IF

Возможности расширения языка | Вид семейства | Управление программой | Выражения для массивов | Секция (вырезка) массива | Модули и процедуры | Более подробная информация | Спецификации или объявления | Тип Character | Логические выражения |


Читайте также:
  1. Case. Оператор выбора
  2. Gerund Complex (Герундиальная конструкция)
  3. if...else оператор
  4. А). модернизационный, когда конструкция прототипа или базовая технология кардинально не изменяются;
  5. В Алматы обсудили конфликт интересов правообладателей российских ТВ и казоператоров телевещания
  6. Вбудовані оператори
  7. Вложенные операторы If. Логические операции и выражения

Простейшая форма оператора IF это единственное действие, основанное на единственном условии:

IF(выражение) оператор

Только если выражение (логическая переменная или выражение) имеет значение.TRUE. оператор выполним. Например, в:

IF(x<0.0) x=0.0

если x меньше чем нуль, то дается новое значение (0.0); в противном случае x сохраняет свое прежнее значение.

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

[имя:] IF (выражение1) THEN

блок1

ELSEIF (выражение 2) THEN [имя]

блок 2

...

[ELSE [имя]

блок]

ENDIF [имя]

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

Конструкция используется, когда число операторов зависит от условия. Например, 'если идет дождь, то взять пиджак и взять зонт'. Это требуется в части THEN. Заметим, что оператор END IF (или ENDIF) требуется, чтобы обозначить конец условного блока в операторе.

LOGICAL:: rain

INTEGER:: numb=0, ncoat

...

IF (rain) THEN

ncoat = 1

numb = numb+1

ENDIF

If дождь есть.TRUE., блок операторов выполним и управление переходит к следующему оператору после ENDIF; в противном случае, блок операторов опускается и управление переходит прямо к следующему оператору после ENDIF.

Более сложная ситуация может возникать, когда представляющая альтернативные действия зависимость в единственном условии. Для примера, предыдущие примеры не делают различий между уровнями ливня. Пример выше может быть перефразирован 'если здесь легкий дождь, то взять пиджак, в противном случае (иначе) взять пиджак и зонт'.

REAL:: inches_of_rain

INTEGER:: numb=0, ncoat

...

IF(inches_of_rain>0.05) THEN! сильный дождь

ncoat = 1

numb = numb+1

ELSE! легкий дождь

ncoat = 1

ENDIF

Заметим, используется часть ELSE, отделяющей различные варианты, и что and каждый блок может содержать один или более операторов. Второй блок операторов выполняет установку операторов "по умолчанию" для случая, когда условие не выполняется. Переход управления следует тем же правилам как упомянуто выше.

Здесь рассмотрена ситуация, когда альтернативные действия зависят от нескольких условий. Например, скидка (discount), представляемая для покупки, может очень зависеть от числа покупаемых лотов - больше покупок, больше скидка:

REAL:: cost, discount

INTEGER:: n! число покупок

...

IF (n>10) THEN! 25% скидка на 11 или более

discount = 0.25

ELSEIF (n>5.AND. n<=10) THEN! 15% скидка на 6-10 покупок

discount = 0.15

ELSEIF (n>1.AND. n<=5) THEN! 15% скидка на 2-5 покупок

discount = 0.1

ELSE! без скидки для 1 покупки

discount = 0.0

ENDIF

cost = cost-(cost*discount)

WRITE(*,*) `Накладная для ', cost

 

Заметим, что ELSEIF используется для добавления новых условий к блоку (другая скидка используется). Оператор ELSE действует как умолчание в случае защиты от других событий. Снова те же правила перехода управления.

Конструкция IF мжет быть помечена. Именованная конструкция может быть использована, когда одна находится внутри другой. Этот способ пометки делает программу легкой для понимания:

outer: IF(x==0) THEN

...

ELSE outer

inner: IF(y==0.0) THEN

...

ENDIF inner

ENDIF outer

Я


Дата добавления: 2015-11-14; просмотров: 52 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Массивы и производные типы| Конструкция SELECT CASE

mybiblioteka.su - 2015-2024 год. (0.006 сек.)