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" xmlns:scilab="http://www.scilab.org" xml:lang="ru" xml:id="if">
5 <refpurpose>ключевое слово для условного выполнения</refpurpose>
8 <title>Последовательность вызова</title>
21 <title>Аргументы</title>
24 <term>expr1, expri</term>
32 <term>statements, ..., statements i</term>
35 наборы корректных инструкций.
42 <title>Описание</title>
44 Инструкция <literal>if</literal> вычисляет логическое выражение <literal>expr1</literal>
45 и выполняет набор инструкций <literal>statements 1</literal>, если выражение истинно.
48 <literal>expri</literal> являются выражениями с числовыми или логическими значениями. Если
49 <literal>expri</literal> является нескалярным значением, то условие истинно только если
50 все элементы этого значения истинны или отличны от нуля.
53 Необязательные ключевые слова <literal>elseif</literal> и <literal>else</literal>
54 необходимы для выполнения альтернативных групп инструкций. Ключевое слово
55 <literal>end</literal>, которое соответствует <literal>if</literal>, заканчивает
56 последнюю группу инструкций. Линейная структура управляющей инструкции
57 <literal>if</literal> не существенна, единственным ограничением является то, что
58 каждое ключевое слово <literal>then</literal> должно быть на той же самой строке,
59 что и соответствующее ключевое слово <literal>if</literal> или <literal>elseif</literal>.
62 Ключевое слово <literal>then</literal> можно заменить на возврат каретки или запятую.
65 В соответствии с договорённостями по написанию кода в Scilab рекомендуется:
70 начинать новую инструкцию на новой строке;
75 писать не более одной простой инструкции на одной строке;
80 разбивать составные инструкции на множество строк.
85 Например, используйте:
87 <programlisting role=""><![CDATA[
88 if rand(1,1) > 0.5 then
97 <programlisting role=""><![CDATA[
98 if rand(1,1) > 0.5 then disp("True"); else disp("False"); end
101 Предупреждение: число символов, используемых для определения тела любой инструкции условия
102 (<literal>if while for</literal> или <literal>select/case</literal>) должно быть ограничено
107 <title>Примеры</title>
108 <programlisting role="example"><![CDATA[
113 elseif abs(i-j) == 1 then
120 <refsection role="see also">
121 <title>Смотрите также</title>
122 <simplelist type="inline">
124 <link linkend="try">try</link>
127 <link linkend="while">while</link>
130 <link linkend="select">select</link>
133 <link linkend="boolean">boolean</link>
136 <link linkend="end">end</link>
139 <link linkend="then">then</link>
142 <link linkend="else">else</link>
145 <link linkend="comparison">сравнение</link>