Справочное руководство по языку Ада-83


Операторы отбора


Существует три формы операторов отбора. Одна форма обеспечивает отбор с ожиданием одной или нескольких альтернатив. Две другие обеспечивают условный и временной вызовы входа.

оператор-отбора ::= отбор-с-ожиданием | условный-вызов-входа | временной-вызов-входа

Ссылки:

временной вызов входа 9.7.3, отбор с ожиданием 9.7.1, условный вызов входа 9.7.2.

9.7.1. ОТБОР С ОЖИДАНИЕМ

Эта форма оператора отбора допускает объединение ожидания и отбор с ожиданием одной или нескольких альтернатив. Отбор может зависеть от условий, связанных с каждой альтернативой отбора с ожиданием.

отбор-с-ожиданием ::= select

альтернатива-отбора {or

альтернатива-отбора) [else

последовательность-операторов] end select;

альтернатива-отбора ::= [when условие = >] альтернатива-отбора-с-ожиданием

альтернатива-отбора-с-ожиданием ::= альтернатива-принятия | альтернатива-задержки | альтернатива-завершения

альтернатива-принятия ::= оператор-принятия [последовательность-операторов]

альтернатива-задержки ::= оператор-задержки [последовательность - операторов]

альтернатива-завершения ::= terminate;

Оператор отбора с ожиданием должен содержать по крайней мере одну альтернативу принятия. В дополнение к этому оператор отбора с ожиданием может содержать либо альтернативу завершения (только одну), либо одну или несколько альтернатив задержки, либо раздел

else;

эти три возможности являются взаимоисключающими.

Альтернатива отбора называется

открытой,

если она, не начинается с зарезервированного слова

when

или если значение условия — TRUE. В противном случае альтернатива называется

закрытой.

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

when;

определяются открытые альтернативы. Для открытой альтернативы задержки вычисляется выражение длительности задержки. Для открытой альтернативы принятия входа семейства вычисляется индекс входа. Выполнение отбора с ожиданием заканчивается отбором и вычислением либо одной из открытых альтернатив, либо раздела else; правила такого отбора описываются ниже.




Начало  Назад  Вперед