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

Конструкция SELECT CASE

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


Читайте также:
  1. Adverse selection
  2. Audience Selection
  3. Basic principles of vocabulary selection
  4. Creating a Select query.
  5. Criteria of grammatical minimum selection
  6. Ex.2.Selective Listening.
  7. EXERCISE 3: Complete the sentences by selecting words from COLUMN B in EXERCISE 1.

Конструкция SELECT CASE обеспечиввает альтернативу серии повторяющихся операторов IF... THEN... ELSE IF. Ее общий вид таков:

[имя:] SELECT CASE(выражение)

CASE(значение) [имя]

блок

...

[CASE DEFAULT

блок]

END SELECT [имя]

Результат выражения может быть типа CHARACTER, LOGICAL или INTEGER; значение должно быть того же типа, что и результат выражения и может быть любой комбинацией из:

•единичной integer, character, или logical, связывающим в типе

•min: max

любого значеиия между двумя ограничениями

•min:

любое значение минимального значения из вышеприведенных

•:max

любое значение выше минимального значения

 

CASE DEFAULT не обязателен и закрывает все другие возможные значения выражения, еще не закрытые другими операторами CASE. Например:

INTEGER:: month

...

season: SELECT CASE(month)

CASE(4,5)! months 4 и 5

WRITE(*,*) 'Spring'

CASE(6,7)! months 6 и 7

WRITE(*,*) 'Summer'

CASE(8:10)! months 8,9 и 10

WRITE(*,*) 'Autumn'

CASE(11,1:3,12)! months 1,2,3,11,12

WRITE(*,*) 'Winter'

CASE DEFAULT! целое вне диапазона 1-12

WRITE(*,*) 'not a month'

END SELECT season

Приведенный выше пример печатает сезон года, ассоциированный с заданным месяцем. Если значение целого месяца не лежит в диапазоне 1-12, выбирается вариант умолчания и печатается сообщение об ошибке 'not a month'; в других случаях выбирается один из операторов CASE. Заметим, что они не определяют порядок значеиий в операторе CASE.

Я

GOTO

Оператор GOTO можно использовать дле передачи управления другому оператору в виде:

GOTO label

 

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

...

IF(x<10) GOTO 10

...

10 STOP

 

Оператор GOTO можно бы не применять, где возможно, программы, содержащие такие оператороы, заведомо трудно поддерживать. Оператор STOP завершает программу.

Я

**************** DO *************************

http://parallel.uran.ru/alpha/f90www/loops_rus.htm

Вложения

Размещение конструкции одного блока внутри другого (операторы IF-THEN внутри цикла DO, и т.д.) возможно, но внутренний блок (блоки) должен быть окаймлен наружным (и) блоком (ами) с помощью соответствующих операторов. Запрещено перекрывать вложенные операторы. Например:

 

main: IF(sum>100) THEN

inner: DO i=1,n

...

ENDIF main

ENDDO inner! запрещено, inner должен быть внутри main

 

Это в общем верно для всех конструкций, то есть для цикла DO, конструкций IF-THEN-ELSEIF и CASE. Максимальный уровень вложения (конструкции внутри конструкций внутри конструкций...) зависит от компилятора.


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


<== предыдущая страница | следующая страница ==>
Оператор и конструкция IF| Упорядочение операторов

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