Специальный выход из цикла.
Цикл может быть прерван в любой момент времени. Такой выход из цикла называется специальным. Он осуществляется с помощью оператора 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 можно только через заголовок.