Merge remote-tracking branch 'origin/6.1'
[scilab.git] / scilab / modules / core / help / ru_RU / 2_control_flow / if.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
4  * Copyright (C) 2008 - INRIA
5  *
6  * Copyright (C) 2012 - 2016 - Scilab Enterprises
7  *
8  * This file is hereby licensed under the terms of the GNU GPL v2.0,
9  * pursuant to article 5.3.4 of the CeCILL v.2.1.
10  * This file was originally licensed under the terms of the CeCILL v2.1,
11  * and continues to be available under such terms.
12  * For more information, see the COPYING file which you should have received
13  * along with this program.
14  *
15  -->
16 <refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
17         xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML"
18         xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org"
19         xml:lang="ru" xml:id="if">
20     <refnamediv>
21         <refname>if</refname>
22         <refpurpose>ключевое слово для условного выполнения</refpurpose>
23     </refnamediv>
24     <refsynopsisdiv>
25         <title>Синтаксис</title>
26         <synopsis>
27             if expr1 then
28                 statements1
29             elseif expri then
30                 statementsi
31                 ....
32             else
33                 statements
34             end
35         </synopsis>
36     </refsynopsisdiv>
37     <refsection>
38         <title>Аргументы</title>
39         <variablelist>
40             <varlistentry>
41                 <term>expr1, expri</term>
42                 <listitem>
43                     <para>
44                         логические выражения.
45                     </para>
46                 </listitem>
47             </varlistentry>
48             <varlistentry>
49                 <term>statements, ..., statements i</term>
50                 <listitem>
51                     <para>
52                         наборы корректных инструкций.
53                     </para>
54                 </listitem>
55             </varlistentry>
56         </variablelist>
57     </refsection>
58     <refsection>
59         <title>Описание</title>
60         <para>
61             Инструкция <literal>if</literal> вычисляет логическое выражение <literal>expr1</literal>
62             и выполняет набор инструкций <literal>statements 1</literal>, если выражение истинно.
63         </para>
64         <para>
65             <literal>expri</literal> являются выражениями с числовыми или логическими значениями. Если
66             <literal>expri</literal> является нескалярным значением, то условие истинно только если
67             все элементы этого значения истинны или отличны от нуля.
68         </para>
69         <para>
70             Необязательные ключевые слова <literal>elseif</literal> и <literal>else</literal>
71             необходимы для выполнения альтернативных групп инструкций. Ключевое слово
72             <literal>end</literal>, которое соответствует <literal>if</literal>, заканчивает
73             последнюю группу инструкций. Линейная структура управляющей инструкции
74             <literal>if</literal> не существенна, единственным ограничением является то, что
75             каждое ключевое слово <literal>then</literal> должно быть на той же самой строке,
76             что и соответствующее ключевое слово <literal>if</literal> или <literal>elseif</literal>.
77         </para>
78         <para>
79             Ключевое слово <literal>then</literal> можно заменить на возврат каретки или запятую.
80         </para>
81         <para>
82             В соответствии с договорённостями по написанию кода  в Scilab рекомендуется:
83         </para>
84         <itemizedlist>
85             <listitem>
86                 <para>
87                     начинать новую инструкцию на новой строке;
88                 </para>
89             </listitem>
90             <listitem>
91                 <para>
92                     писать не более одной простой инструкции на одной строке;
93                 </para>
94             </listitem>
95             <listitem>
96                 <para>
97                     разбивать составные инструкции на множество строк.
98                 </para>
99             </listitem>
100         </itemizedlist>
101         <para>
102             Например, используйте:
103         </para>
104         <programlisting role=""><![CDATA[
105       if rand(1,1) > 0.5 then
106     disp("True");
107       else
108     disp("False");
109       end
110 ]]></programlisting>
111         <para>
112             а не:
113         </para>
114         <programlisting role=""><![CDATA[
115       if rand(1,1) > 0.5 then disp("True"); else disp("False"); end
116 ]]></programlisting>
117       <warning>
118         число символов, используемых для определения тела любой инструкции условия
119         (<literal>if while for</literal> или <literal>select/case</literal>) должно быть ограничено
120         16К.
121       </warning>
122     </refsection>
123     <refsection>
124         <title>Примеры</title>
125         <programlisting role="example"><![CDATA[
126 i=2
127 for j = 1:3,
128   if i == j then
129     a(i,j) = 2;
130   elseif abs(i-j) == 1 then
131     a(i,j) = -1;
132   else a(i,j) = 0;
133   end,
134 end
135  ]]></programlisting>
136     </refsection>
137     <refsection role="see also">
138         <title>Смотрите также</title>
139         <simplelist type="inline">
140             <member>
141                 <link linkend="then">then</link>
142             </member>
143             <member>
144                 <link linkend="else">else</link>
145             </member>
146             <member>
147                 <link linkend="elseif">elseif</link>
148             </member>
149             <member>
150                 <link linkend="end">end</link>
151             </member>
152             <member>
153                 <link linkend="while">while</link>
154             </member>
155             <member>
156                 <link linkend="select">select</link>
157             </member>
158             <member>
159                 <link linkend="boolean">boolean</link>
160             </member>
161             <member>
162                 <link linkend="comparison">сравнение</link>
163             </member>
164             <member>
165                 <link linkend="or_op">|, ||</link>
166             </member>
167             <member>
168                 <link linkend="and_op">&amp;, &amp;&amp;</link>
169             </member>
170         </simplelist>
171     </refsection>
172     <refsection role="history">
173         <title>История</title>
174         <revhistory>
175             <revision>
176                 <revnumber>6.0.0</revnumber>
177                 <revdescription>
178                   <literal>if</literal> is now protected:
179                   Assignments like <literal>if=1</literal> are no longer possible.
180                 </revdescription>
181             </revision>
182         </revhistory>
183     </refsection>
184 </refentry>