Merge remote-tracking branch 'origin/6.1'
[scilab.git] / scilab / modules / core / help / ru_RU / 2_control_flow / select.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" 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="select">
17     <refnamediv>
18         <refname>select</refname>
19         <refpurpose>ключевое слово выбора</refpurpose>
20     </refnamediv>
21     <refsynopsisdiv>
22         <title>Синтаксис</title>
23         <synopsis>
24             select variable
25             case value1 then
26                 instructions 1
27             case value2 then
28                 instructions 2
29                 ...
30             case valuen then
31                 instructions n
32             [else
33                 instructions]
34             end
35         </synopsis>
36     </refsynopsisdiv>
37     <refsection>
38         <title>Аргументы</title>
39         <variablelist>
40             <varlistentry>
41                 <term>variable</term>
42                 <listitem>
43                     <para>
44                         переменная, значение которой анализируется.
45                     </para>
46                 </listitem>
47             </varlistentry>
48             <varlistentry>
49                 <term>value1, ..., valuen</term>
50                 <listitem>
51                     <para>
52                         значения переменной <literal>variable</literal> для которых предусмотрен соответствующий набор
53                         инструкций  <literal>instructions 1, ..., instructions n</literal>.
54                     </para>
55                 </listitem>
56             </varlistentry>
57             <varlistentry>
58                 <term>instructions</term>
59                 <listitem>
60                     <para>
61                         набор корректных инструкций.
62                     </para>
63                 </listitem>
64             </varlistentry>
65         </variablelist>
66     </refsection>
67     <refsection>
68         <title>Описание</title>
69         <para>
70             Управляющая инструкция выбора действий по значению переменной <literal>variable</literal>.
71         </para>
72         <para>
73             Примечания:
74         </para>
75         <itemizedlist>
76             <listitem>
77                 <para>
78                     Единственное ограничение в том, что каждое ключевое слово <literal>"then"</literal> должно быть на
79                     той же строке, что и соответствующее ключевое слово <literal>"case"</literal> (либо используйте
80                     обозначение продолжения, см <link linkend="dot">точка</link>).
81                 </para>
82             </listitem>
83             <listitem>
84                 <para>
85                     Ключевое слово <literal>"then"</literal> можно заменить на перевод каретки или запятую.
86                     Инструкции <literal>instructions1</literal> исполняются, если <literal>expr1=expr</literal>,
87                     и т. д.
88                 </para>
89             </listitem>
90         </itemizedlist>
91         <para>
92             В соответствии с договорённостями по написанию кода  в Scilab рекомендуется:
93         </para>
94         <itemizedlist>
95             <listitem>
96                 <para>
97                     начинать новую инструкцию на новой строке;
98                 </para>
99             </listitem>
100             <listitem>
101                 <para>
102                     писать не более одной простой инструкции на одной строке;
103                 </para>
104             </listitem>
105             <listitem>
106                 <para>
107                     разбивать составные инструкции на множество строк.
108                 </para>
109             </listitem>
110         </itemizedlist>
111         <para>
112             Например, используйте:
113         </para>
114         <programlisting role=""><![CDATA[
115 A = 2
116 select A
117 case 1 then
118     disp(1)
119 case 2 then
120     disp(2)
121 else
122     disp(3)
123 end
124 ]]></programlisting>
125         <para>
126             а не:
127         </para>
128         <programlisting role=""><![CDATA[
129 A = 2;select A case 1 then disp(1); case 2 then disp(2); else  disp(3); end
130 ]]></programlisting>
131         <para>
132             Предупреждение: число символов, используемых для определения тела любой инструкции условия
133             (<literal>if while for</literal> или <literal>select/case</literal>) должно быть ограничено
134             16К.
135         </para>
136     </refsection>
137     <refsection>
138         <title>Примеры</title>
139         <programlisting role="example"><![CDATA[
140 while %t do
141   n=round(10*rand(1,1))
142   select n
143   case 0 then
144     disp(0)
145   case 1 then
146     disp(1)
147   else
148     break
149   end
150 end
151  ]]></programlisting>
152     </refsection>
153     <refsection role="see also">
154         <title>Смотрите также</title>
155         <simplelist type="inline">
156             <member>
157                 <link linkend="if">if</link>
158             </member>
159             <member>
160                 <link linkend="while">while</link>
161             </member>
162             <member>
163                 <link linkend="for">for</link>
164             </member>
165         </simplelist>
166     </refsection>
167     <refsection role="history">
168         <title>История</title>
169         <revhistory>
170             <revision>
171                 <revnumber>6.0.0</revnumber>
172                 <revdescription>
173                   <literal>select</literal> is now protected:
174                   Assignments like <literal>select=1</literal> are no longer possible.
175                 </revdescription>
176             </revision>
177         </revhistory>
178     </refsection>
179 </refentry>