Elseif(x < 0)then
Write(*,*) 'x < 0'
Elseif(x == 0)then
Write(*,*) 'x = 0’; y = 0
Else
Write(*,*) 'Так не бывает'
Endif
Попробуем реализовать ту же конструкцию, используя встроенные операторыIf
Пример 2
A1: If(x > 0)then
Write(*,*)'x > 0'; y = sqrt(x)
Else
A2: If(x < 0)then
Write(*,*)'x < 0'
Else
A3: If(x == 0)then
Write(*,*)'x = 0’; y = 0
Else
Write(*,*)'Так не бывает'
EndifA3
EndifA2
EndifA1
Легко убедиться в лаконичности и наглядности многоблочного оператораIf.
На примере 2 хорошо видно, почему каждый блок, встроенный в некую конструкцию, рекомендуется сдвинуть вправо на несколько позиций. Это хороший стиль программирования. Текст визуально становится более легким для чтения.
Если в программе несколько операторовIf, можно дать имя каждому из них. Имя оператора является необязательным, но если оно указано в его заголовке, то становится обязательным для завершающей строки оператора. Применение имен операторов А1, А2, А3 также продемонстрировано на примере 2.
Переключатель Select
Оператор select предназначен для реализации ветвлений выбором одного варианта из нескольких возможных.В этой конструкции проверяется только одно выражение; значение его может быть либо целым, либо символьным.
В общем виде конструкция выглядит так:
Select case(выражение)
Case (множество значений 1)
Блок case1
Case (множество значений 2)
Блок case2
. . .
Case Default
Блок default
End select
Блок-схема оператора select:
В круглые скобки после ключевого слова Case помещаются списки непересекающихся значений и интервалов, поэтому выполнение оператора – это выполнение не более одного блока Case. Если значения выражения не принадлежит ни одному из указанных множеств, то выполняется блок default,
Пример (переменной Range присваивается значение в зависимости от значения абсолютной величины переменной Number):
Integer:: Number, Range
Select case (abs(Number))
Case (-5:-3, 6:9)
Range = 1
Case (-2:2)
Range = 2
Case (3, 5)
Range = 3
Case (4)
Range = 4
Case Default
Range = 10
End select
Дата добавления: 2017-09-19; просмотров: 395;