Оператор If...then...else
Если необходимо выполнить альтернативные действия, конструкция If...then может быть расширена блокомelse:
If(логическое выражение)then
Блок true
Else
Блок false
Endif
Внимание! Ключевое слово then пишется в той же строке, что и логическое выражение, ключевое слово else – в отдельной строке. Если нет «блока false», то и else лучше не писать.
Изображение данного оператора на блок-схеме:
В такой конструкции при выполнении условия, заданного логическим выражением, выполняется Блок true, если условие не выполняется – Блок false.
Пример:
If(x>=0)then
y = sqrt(x)
Write(*,*)’x= ’, x, ’ y= ’, y
Else
Write(*,*)’x= ’, x, ’ x<0, y не определен’
Endif
Оператор If с тремя и более блоками
В наиболее полной форме оператор If...then...else может содержать несколько блоков альтернативных действий, добавляемых конструкцией elseif...then:
If(логическое выражение 1)then
Блок if
Elseif(логическое выражение 2)then
Блок elseif2
Elseif(логическое выражение 3)then
Блок elseif3
Else
Блок default ! выполняется при невыполнении всех условий
Endif
Ключевое слово Elseif,логическое выражение и словоthen пишутся в одной строке. Это один составной оператор, и завершающий Endif тоже только один.
Ветвей Elseif...then в операторе может быть несколько, ветвь Else может отсутствовать.
Изображение такой конструкции на блок-схеме:
Оператор выполняется следующим образом: последовательно проверяются логические выражения в скобках, пока не будет найдено истинное. Тогда проверка прекратится, и будет выполнен соответствующий блок, а затем управление будет передано операторуEndif. Если среди всех условий нет ни одного истинного, выполнится Блок default. Если же в этой ситуации ветвь Else отсутствует, не будет выполнено никаких действий.
Это наиболее общая форма структурного оператора If. Очевидно, что оператор If...then...else с двумя блоками является ее частным случаем и может быть получен удалением ветвей Elseif. Если, кроме того, удалить ветвь Else, то в операторе If останется только один блок.
Пример 1
If(x > 0)then
Write(*,*) 'x > 0'; y = sqrt(x)
Дата добавления: 2017-09-19; просмотров: 424;