pascalabcnet/PABCNetHelp/LangGuide/Operations_Expressions/IfOperation.html
Mikhalkovich Stanislav 7aed6ed062 Print($'{Arr(1,2,3)}')
теперь печатает содержимое массива
2025-11-11 22:04:03 +03:00

54 lines
2.9 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<html><head>
<object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
<param name="Keyword" value="Условная операция">
</object>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title></title>
<link rel="StyleSheet" href="../../default.css">
</head>
<body><H1>Условная операция</H1>
<p>Условная операция (<strong>первая форма</strong>) имеет следующий вид:</p>
<blockquote>
<em>условие</em> <code>?</code> <em>выражение1</em> <code>:</code> <em>выражение2</em>
</blockquote>
<p>Если условие выполняется, то результатом является значение выражения1, иначе
значение выражения2.</p>
<p>Например:</p>
<blockquote>
<p><code><b>var</b> min := a &lt; b ? a : b;</code></p>
</blockquote>
<p>Нетрудно видеть, что условная операция позволяет в простых случаях не
использовать условный оператор. Например, предыдущий код для вещественных a и b
эквивалентен следующему:</p>
<blockquote>
<p><code><b>var</b> min: real;<br><strong>if</strong> a&lt;b <strong>then</strong><br>&nbsp;
min := a<br><strong>else</strong> min := b;</code></p>
</blockquote>
<p>Кроме того, имеется <strong>вторая форма условной операции</strong> в
синтаксисе Паскаля: </p>
<blockquote>
<code><strong>if</strong><em> </em> </code>
<em>условие</em> <code> <strong>then</strong></code> <em>выражение1</em> <code><strong>else</strong></code> <em>выражение2</em>
</blockquote>
<p>Например: </p>
<blockquote>
<p><code><b>var</b> min := <strong>if</strong> a &lt; b <strong>then</strong> a
<strong>else</strong> b;</code></p>
</blockquote>
<p>Рекомендуется использовать вторую форму условной операции.</p>
<p><strong>Ограничение</strong>. Вторую форму условной операции нельзя
использовать в качестве выражения верхнего уровня в лямбдах. Следующий код
<strong><em>ошибочен</em></strong>:</p>
<blockquote>
<p><code><b>var</b> l: real -&gt; real := x -&gt; <strong>if</strong> x&lt;0 <strong>
then</strong> 0 <strong>else</strong> x;</code></p>
</blockquote>
<p>Для решения указанной проблемы нужно <em><strong>взять условную операцию в скобки</strong></em>:</p>
<blockquote>
<p><code><b>var</b> l: real -&gt; real := x -&gt; (<strong>if</strong> x&lt;0 <strong>
then</strong> 0 <strong>else</strong> x);</code></p>
</blockquote>
<p>&nbsp;</p>
</body></html>