1 <?xml version="1.0" encoding="UTF-8"?>
2 <refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:lang="ru" xml:id="if">
4 <pubdate>$LastChangedDate$</pubdate>
8 <refpurpose>ключевое слово для условного выполнения</refpurpose>
11 <title>Последовательность вызова</title>
24 <title>Аргументы</title>
27 <term>expr1, expri</term>
35 <term>statements, ..., statements i</term>
38 наборы корректных инструкций.
45 <title>Описание</title>
47 Инструкция <literal>if</literal> вычисляет логическое выражение <literal>expr1</literal>
48 и выполняет набор инструкций <literal>statements 1</literal>, если выражение истинно.
51 <literal>expri</literal> являются выражениями с числовыми или логическими значениями. Если
52 <literal>expri</literal> является нескалярным значением, то условие истинно только если
53 все элементы этого значения истинны или отличны от нуля.
56 Необязательные ключевые слова <literal>elseif</literal> и <literal>else</literal>
57 необходимы для выполнения альтернативных групп инструкций. Ключевое слово
58 <literal>end</literal>, которое соответствует <literal>if</literal>, заканчивает
59 последнюю группу инструкций. Линейная структура управляющей инструкции
60 <literal>if</literal> не существенна, единственным ограничением является то, что
61 каждое ключевое слово <literal>then</literal> должно быть на той же самой строке,
62 что и соответствующее ключевое слово <literal>if</literal> или <literal>elseif</literal>.
65 Ключевое слово <literal>then</literal> можно заменить на возврат каретки или запятую.
68 В соответствии с договорённостями по написанию кода в Scilab рекомендуется:
73 начинать новую инструкцию на новой строке;
78 писать не более одной простой инструкции на одной строке;
83 разбивать составные инструкции на множество строк.
88 Например, используйте:
90 <programlisting role=""><![CDATA[
91 if rand(1,1) > 0.5 then
101 <programlisting role=""><![CDATA[
102 if rand(1,1) > 0.5 then disp("True"); else disp("False"); end
105 Предупреждение: число символов, используемых для определения тела любой инструкции условия
106 (<literal>if while for</literal> или <literal>select/case</literal>) должно быть ограничено
111 <title>Примеры</title>
112 <programlisting role="example"><![CDATA[
117 elseif abs(i-j) == 1 then
124 <refsection role="see also">
125 <title>Смотрите также</title>
126 <simplelist type="inline">
128 <link linkend="try">try</link>
131 <link linkend="while">while</link>
134 <link linkend="select">select</link>
137 <link linkend="boolean">boolean</link>
140 <link linkend="end">end</link>
143 <link linkend="then">then</link>
146 <link linkend="else">else</link>
149 <link linkend="comparison">сравнение</link>