Специальный выход из цикла.


Цикл может быть прерван в любой момент времени. Такой выход из цикла называется специальным. Он осуществляется с помощью оператора Goto.

Пример оформления цикла со специальным выходом (решение нелинейного уравнения методом простой итерации с контролем количества итераций) приведен на рис.4.16.5


 

Рис.4.16.5.

 

Тело цикла может в свою очередь содержать циклы и любые другие конструкции. Но вложенные циклы не должны быть пересекающимися. Пример оформления вложенных циклов (вычисление произведений ненулевых элементов строк двумерного массива А) приведен на рис.4.16.6.


---------------------------------------Рис.4.16.6.

 

4.9.6. Оператор выбора (Case).

Оператор выбора предназначен для оформления конструкции "Выбор" (рис.4.16.7.) структурного программирования. Принцип действия этой конструкции следующий: из указанного набора операторов выполняется оператор, метка варианта (mвх) которого совпадает с значением селектора варианта (СВ).


Рис.4.16.7.

Для оформления в программе этой конструкции имеется специальный оператор "Case" ( иногда его называют оператором варианта). Возможности этого оператора несколько шире (за счет дополнительного ключевого слова ELSE). Общая форма записи оператора Case приведена на рис.4.16.7.

На рис.4.16.7. обозначено:

- Case (случай,выбор), Of (из), Else (иначе), End - зарезервированные слова;

- Св - селектор варианта (переменная или выражение порядкового типа);

- mв1, mв2,… - метки варианта;

- Оператор1, оператор2, ….- один простой или составной оператор.

Принцип действия:

- вычисляется значение выражения СВ;

- осуществляется переход к блоку, метка варианта которого равна значению СВ;

- выполняется оператор помеченный этой меткой и осуществляется выход из этой конструкции.

Если значение СВ не совпадает ни с одной из меток варианта, то выполняется оператор записанный после Else. Фрагмент с Else может отсутствовать.

Пример записи оператора Case приведен на рис.4.16.8.


Рис.4.16.8.

В данном случае меткой 3 помечен блок, содержащий два оператора, поэтому в операторе Case для оформления этого блока используется составной оператор.

Правила:

- Метки варианта относятся только к конкретному оператору Case, их не надо указывать в разделе меток;

- Один оператор может быть помечен несколькими метками, разделителем между метками является символ ",";

- Селектор варианта (Св) может иметь любой порядковый тип;

- Все метки варианта должны быть уникальными и иметь порядковый тип совместимый с типом Св;

- Меткой варианта может быть константа или диапазон выбора.

Пример на данные правила приведен на рис.4.16.9.

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

Пример на рис.4.16.10.

 

 


Рис.4.16.9. Рис.4.16.10.

Операторы входящие в Case могут быть помечены обычными метками. Эти метки должны быть объявлены в разделе меток. Метки варианта должны предшествовать обычным меткам.

Входить в Case можно только через заголовок.