2ca4c636c54372f69b1a98a13fa4b424a809e51b
[scilab.git] / scilab / modules / core / help / ru_RU / control_flow / if.xml
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">
3     <refnamediv>
4         <refname>if</refname>
5         <refpurpose>ключевое слово для условного выполнения</refpurpose>
6     </refnamediv>
7     <refsynopsisdiv>
8         <title>Последовательность вызова</title>
9         <synopsis>
10             if expr1 then
11             statements 1
12             elseif expri then
13             statements i
14             ....
15             else 
16             statements
17             end
18         </synopsis>
19     </refsynopsisdiv>
20     <refsection>
21         <title>Аргументы</title>
22         <variablelist>
23             <varlistentry>
24                 <term>expr1, expri</term>
25                 <listitem>
26                     <para>
27                         логические выражения. 
28                     </para>
29                 </listitem>
30             </varlistentry>
31             <varlistentry>
32                 <term>statements, ..., statements i</term>
33                 <listitem>
34                     <para>
35                         наборы корректных инструкций. 
36                     </para>
37                 </listitem>
38             </varlistentry>
39         </variablelist>
40     </refsection>
41     <refsection>
42         <title>Описание</title>
43         <para>
44             Инструкция <literal>if</literal> вычисляет логическое выражение <literal>expr1</literal> 
45             и выполняет набор инструкций <literal>statements 1</literal>, если выражение истинно.
46         </para>
47         <para>
48             <literal>expri</literal> являются выражениями с числовыми или логическими значениями. Если 
49             <literal>expri</literal> является нескалярным значением, то условие истинно только если 
50             все элементы этого значения истинны или отличны от нуля.
51         </para>
52         <para>
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>.
60         </para>
61         <para>
62             Ключевое слово <literal>then</literal> можно заменить на возврат каретки или запятую.
63         </para>
64         <para>
65             В соответствии с договорённостями по написанию кода  в Scilab рекомендуется:
66         </para>
67         <itemizedlist>
68             <listitem>
69                 <para>
70                     начинать новую инструкцию на новой строке;
71                 </para>
72             </listitem>
73             <listitem>
74                 <para>
75                     писать не более одной простой инструкции на одной строке;
76                 </para>
77             </listitem>
78             <listitem>
79                 <para>
80                     разбивать составные инструкции на множество строк.
81                 </para>
82             </listitem>
83         </itemizedlist>
84         <para>
85             Например, используйте:
86         </para>
87         <programlisting role=""><![CDATA[
88       if rand(1,1) > 0.5 then
89         disp("True");
90       else
91         disp("False");
92       end
93 ]]></programlisting>
94         <para>
95             а не:
96         </para>
97         <programlisting role=""><![CDATA[
98       if rand(1,1) > 0.5 then disp("True"); else disp("False"); end
99 ]]></programlisting>
100         <para>
101             Предупреждение: число символов, используемых для определения тела любой инструкции условия
102             (<literal>if while for</literal> или <literal>select/case</literal>) должно быть ограничено
103             16К.
104         </para>
105     </refsection>
106     <refsection>
107         <title>Примеры</title>
108         <programlisting role="example"><![CDATA[ 
109 i=2
110 for j = 1:3, 
111   if i == j then
112     a(i,j) = 2; 
113   elseif abs(i-j) == 1 then 
114     a(i,j) = -1; 
115   else a(i,j) = 0;
116   end,
117 end
118  ]]></programlisting>
119     </refsection>
120     <refsection role="see also">
121         <title>Смотрите также</title>
122         <simplelist type="inline">
123             <member>
124                 <link linkend="try">try</link>
125             </member>
126             <member>
127                 <link linkend="while">while</link>
128             </member>
129             <member>
130                 <link linkend="select">select</link>
131             </member>
132             <member>
133                 <link linkend="boolean">boolean</link>
134             </member>
135             <member>
136                 <link linkend="end">end</link>
137             </member>
138             <member>
139                 <link linkend="then">then</link>
140             </member>
141             <member>
142                 <link linkend="else">else</link>
143             </member>
144             <member>
145                 <link linkend="comparison">сравнение</link>
146             </member>
147         </simplelist>
148     </refsection>
149 </refentry>