2018-08-02 22:04:49 +03:00
|
|
|
|
<html>
|
|
|
|
|
|
|
|
|
|
|
|
<head>
|
|
|
|
|
|
<object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
|
|
|
|
|
|
<param name="Keyword" value="case">
|
|
|
|
|
|
<param name="Keyword" value="of">
|
|
|
|
|
|
<param name="Keyword" value="else">
|
2025-11-07 16:12:31 +03:00
|
|
|
|
<param name="Keyword" value="Оператор выбора">
|
2018-08-02 22:04:49 +03:00
|
|
|
|
</object>
|
|
|
|
|
|
<object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
|
|
|
|
|
|
<param name="Keyword" value="case">
|
|
|
|
|
|
</object>
|
|
|
|
|
|
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
|
|
|
|
|
|
<title></title>
|
|
|
|
|
|
<link rel="StyleSheet" href="../../default.css">
|
|
|
|
|
|
</head>
|
|
|
|
|
|
|
|
|
|
|
|
<body>
|
2025-11-07 16:12:31 +03:00
|
|
|
|
<H1>Оператор выбора</H1>
|
|
|
|
|
|
<p><i>Оператор выбора</i> выполняет одно действие из нескольких в зависимости от
|
|
|
|
|
|
значения некоторого выражения, называемого <i>переключателем</i>. Он имеет
|
|
|
|
|
|
следующий вид:</p>
|
2018-08-02 22:04:49 +03:00
|
|
|
|
<blockquote>
|
2025-11-07 16:12:31 +03:00
|
|
|
|
<p><b><code>case</code></b> <code class="codeit">переключатель</code> <code>
|
2018-08-02 22:04:49 +03:00
|
|
|
|
<b>of<br>
|
2025-11-07 16:12:31 +03:00
|
|
|
|
</b> </code> <code class="codeit">список выбора 1</code><code>: </code> <code class="codeit">
|
|
|
|
|
|
оператор1</code><code>;<br>
|
2018-08-02 22:04:49 +03:00
|
|
|
|
...<br>
|
2025-11-07 16:12:31 +03:00
|
|
|
|
</code> <code class="codeit">список выбора N</code><code>:
|
|
|
|
|
|
</code> <code class="codeit">операторN</code><code>;<br>
|
|
|
|
|
|
<b> else</b></code> <code class="codeit">список операторов<br>
|
2018-08-02 22:04:49 +03:00
|
|
|
|
</code><code><b>end</b>;</code> </p>
|
|
|
|
|
|
</blockquote>
|
2025-11-07 16:12:31 +03:00
|
|
|
|
<p>Переключатель представляет собой выражение <a href="../Types/index_types.html">порядкового типа</a>
|
|
|
|
|
|
или строкового типа, а списки выбора содержат константы совместимого
|
|
|
|
|
|
по присваиванию типа. Как и
|
|
|
|
|
|
в операторе <b><code>if</code></b>, ветка <b><code>else</code></b> может
|
|
|
|
|
|
отсутствовать. </p>
|
|
|
|
|
|
<p>Оператор <b><code>case</code></b> работает следующим образом. Если в одном из
|
|
|
|
|
|
списков выбора найдено текущее значение переключателя, то выполняется оператор,
|
|
|
|
|
|
соответствующий данному списку. Если же значение переключателя не найдено ни в
|
|
|
|
|
|
одном списке, то выполняется список операторов по ветке <b><code>else</code></b> или,
|
|
|
|
|
|
если ветка <b><code>else</code></b> отсутствует, оператор <b><code>case</code></b>
|
|
|
|
|
|
не выполняет никаких действий. </p>
|
|
|
|
|
|
<p>Список выбора состоит либо из одной константы, либо для перечислимого типа из диапазона значений
|
|
|
|
|
|
вида <code>a..b</code> (константа <code>a</code> должна быть меньше константы
|
|
|
|
|
|
<code>b</code>); можно также перечислить несколько констант или диапазонов через
|
|
|
|
|
|
запятую. Например:</p>
|
2018-08-02 22:04:49 +03:00
|
|
|
|
<blockquote>
|
|
|
|
|
|
<p><code><b>case </b>Country <strong>of</strong><br>
|
2025-11-07 16:12:31 +03:00
|
|
|
|
'Россия': Capital := 'Москва';<br>
|
|
|
|
|
|
'Франция': Capital := 'Париж';<br>
|
|
|
|
|
|
'Италия': Capital := 'Рим';<br> <strong>else</strong> Capital
|
|
|
|
|
|
:= 'Страна отсутствует в базе данных';<br><strong>end</strong>;</code></p>
|
2018-08-02 22:04:49 +03:00
|
|
|
|
<p><code><b>case</b> DayOfWeek <b>of</b><br>
|
2025-11-07 16:12:31 +03:00
|
|
|
|
1..5: writeln('Будний день');<br>
|
|
|
|
|
|
6,7: writeln('Выходной день');<br>
|
2018-08-02 22:04:49 +03:00
|
|
|
|
<b>end</b>;</code></p>
|
|
|
|
|
|
</blockquote>
|
2025-11-07 16:12:31 +03:00
|
|
|
|
<p>Списки выбора не должны пересекаться. Например, следующий фрагмент</p>
|
2018-08-02 22:04:49 +03:00
|
|
|
|
<blockquote>
|
|
|
|
|
|
<p><code><b>case</b> i <b>of</b><br>
|
|
|
|
|
|
2,5: write(1);<br>
|
|
|
|
|
|
4..6: write(2);<br>
|
|
|
|
|
|
<b>end</b>;</code></p>
|
|
|
|
|
|
</blockquote>
|
2025-11-07 16:12:31 +03:00
|
|
|
|
<p>приведет к ошибке компиляции.</p>
|
2018-08-02 22:04:49 +03:00
|
|
|
|
<p> </p>
|
|
|
|
|
|
</body>
|
|
|
|
|
|
|
|
|
|
|
|
</html>
|