Инструменты пользователя

Инструменты сайта


bb:redbook:213

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
Следующая версия Следующая версия справа и слева
bb:redbook:213 [2016/09/08 10:03]
prospero78 [1. Оператор выбора CASE]
bb:redbook:213 [2016/09/08 10:05]
prospero78 [1. Оператор выбора CASE]
Строка 10: Строка 10:
  
 Как использовать оператор ''CASE'' представлено ниже: Как использовать оператор ''CASE'' представлено ниже:
 +<code oberon2>
 +MODULE Test_case;
 +
 + IMPORT
 + Log;
 +
 + PROCEDURE SelectV (v: INTEGER);
 + BEGIN
 + Log.String("v:="); Log.Int(v); Log.Ln;
 + CASE v OF
 + 1..10: Log.String("Малое число"); Log.Ln;
 + | 11..100: Log.String("Среднее число"); Log.Ln;
 + | 101..1000: Log.String("Ого! Большое число!"); Log.Ln;
 + ELSE
 + Log.String("Нет. Это что-то не то..."); Log.Ln;
 + END;
 +
 + END SelectV;
 +
 + PROCEDURE Start*;
 + VAR
 + v: INTEGER;
 + BEGIN
 + v := 6;
 + SelectV(v);
 + v := 12;
 + SelectV(v);
 + v := 102;
 + SelectV(v);
 + v := - 1;
 + SelectV(v);
 + END Start;
 +
 +END Test_case.
 +</code>
 +Вывод:
 +<code>
 +компилируется "Test_case" 252 0
 +старый модуль Test_case выгружен
 +v := 6
 +Малое число
 +v := 12
 +Среднее число
 +v := 102
 +Ого! Большое число!
 +v := - 1
 +Нет. Это что - то не то...
 +</code>
   
 Как видно из текста модуля, количество веток с ''ELSE'' было бы драматически большим, пришлось бы написать больше кода, а значит риск совершения ошибки увеличивается. Кроме того, более компактная форма записи, позволяет сократить занимаемое место на экране, что положительно сказывается на понимании текста программы. Как видно из текста модуля, количество веток с ''ELSE'' было бы драматически большим, пришлось бы написать больше кода, а значит риск совершения ошибки увеличивается. Кроме того, более компактная форма записи, позволяет сократить занимаемое место на экране, что положительно сказывается на понимании текста программы.
bb/redbook/213.txt · Последнее изменение: 2020/10/29 07:08 (внешнее изменение)