Difference between revisions of "Basic Pascal Tutorial/Chapter 3/CASE/bg"

From Lazarus wiki
Jump to navigationJump to search
(Created page with "{{CASE}} {{TYNavigator|IF|FOR..DO}} 3Cb - CASE (author: Tao Yue, state: changed) Операторът за разглеждане на случаи <tt>case</tt> сравн...")
 
(bypass redirects [cf. discussion])
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
{{CASE}}
 
{{CASE}}
{{TYNavigator|IF|FOR..DO}}
+
{{TYNavigator|Chapter 3/IF|Chapter 3/FOR..DO}}
  
3Cb - CASE (author: Tao Yue, state: changed)
 
  
Операторът за разглеждане на случаи <tt>case</tt> сравнява стойността на редови израз с всеки ''селектор''. Това може да бъде [[Const|константа]], a subrange, or a list of them separated by [[Comma|commas]]. Selector field separated to action field by [[Colon]].
+
== CASE ==
 +
''(author: Tao Yue, state: changed)''
  
Suppose you wanted to branch one way if <tt>b</tt> is <tt>1, 7, 2037,</tt> or <tt>5</tt>; and another way if otherwise. You could do it by:
+
Операторът за разглеждане на случаи <tt>case</tt> сравнява стойността на израз с няколко ''селектора''. Селектор може да бъде [[Const|константа]], диапазон или списък от тях разделени със [[Comma|запетаи]]. Селектора се отделя от действието с [[Colon|двуеточие]] (:).
 +
 
 +
Да предположим, че искате да изпълните действие ако <tt>b</tt> е <tt>1, 7, 2037,</tt> или <tt>5</tt>; а в противен случай да изпълните друго действие. Може да го направите по следния начин:
  
 
<syntaxhighlight lang="pascal">
 
<syntaxhighlight lang="pascal">
Line 15: Line 17:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
But in this case, it would be simpler to list the numbers for which you want Statement1 to execute. You would do this with a <tt>case</tt> statement:
+
Но в този случай ще е по-просто да направите списък от числата, за които искате да се изпълни Statement1. Това може да се направи с помощта на оператора <tt>case</tt>:
  
 
<syntaxhighlight lang="pascal">
 
<syntaxhighlight lang="pascal">
Line 24: Line 26:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
The general form of the <tt>case</tt> statement is:
+
Общата форма на оператора <tt>case</tt> е:
  
 
<syntaxhighlight lang="pascal">
 
<syntaxhighlight lang="pascal">
case selector of
+
case expr of
   List1:    Statement1;
+
   Selector1:    Statement1;
   List2:    Statement2;
+
   Selector2:    Statement2;
 
   ...
 
   ...
   Listn:    Statementn;
+
   Selectorn:    Statementn;
 
   otherwise Statement
 
   otherwise Statement
 
end;
 
end;
 
</syntaxhighlight>
 
</syntaxhighlight>
  
The <tt>otherwise</tt> part is optional. When available, it differs from compiler to compiler. In many compilers, you use the word <tt>else</tt> instead of <tt>otherwise</tt>.
+
Частта <tt>otherwise</tt> е незадължителна. Когато е налична, тя се може да се различава за различните компилатори. При повечето от тях се използва думата <tt>else</tt> вместо <tt>otherwise</tt>.
  
selector is any variable of an ordinal data type. You may not use reals!
+
Израза <tt>expr</tt> може да бъде всяка променлива или израз от дискретен тип. Не могат да се използват реални стойности!
  
Note that the lists must consist of literal values. That is, you must use constants or hard-coded values -- you cannot use variables.
+
Селекторите трябва да съдържат само имена на константи или изписани стойности, т.е. в тях не могат да се използват променливи.  
  
{{TYNavigator|IF|FOR..DO}}
+
{{TYNavigator|Chapter 3/IF|Chapter 3/FOR..DO}}

Revision as of 02:10, 6 August 2022

български (bg) English (en) español (es) français (fr) 日本語 (ja) 中文(中国大陆)‎ (zh_CN)

 ◄   ▲   ► 


CASE

(author: Tao Yue, state: changed)

Операторът за разглеждане на случаи case сравнява стойността на израз с няколко селектора. Селектор може да бъде константа, диапазон или списък от тях разделени със запетаи. Селектора се отделя от действието с двуеточие (:).

Да предположим, че искате да изпълните действие ако b е 1, 7, 2037, или 5; а в противен случай да изпълните друго действие. Може да го направите по следния начин:

if (b = 1) or (b = 7) or (b = 2037) or (b = 5) then
  Statement1
else
  Statement2;

Но в този случай ще е по-просто да направите списък от числата, за които искате да се изпълни Statement1. Това може да се направи с помощта на оператора case:

case b of
  1,7,2037,5: Statement1;
  otherwise   Statement2
end;

Общата форма на оператора case е:

case expr of
  Selector1:    Statement1;
  Selector2:    Statement2;
  ...
  Selectorn:    Statementn;
  otherwise Statement
end;

Частта otherwise е незадължителна. Когато е налична, тя се може да се различава за различните компилатори. При повечето от тях се използва думата else вместо otherwise.

Израза expr може да бъде всяка променлива или израз от дискретен тип. Не могат да се използват реални стойности!

Селекторите трябва да съдържат само имена на константи или изписани стойности, т.е. в тях не могат да се използват променливи.

 ◄   ▲   ►