Sign in Join
Wiki copytemporary

Basic Pascal Tutorial/Chapter 3/CASE/bg: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: Basic Pascal Tutorial/Chapter 3/CASE/bg

OldNewLine
1+## CASE
2+
3+*(author: Tao Yue, state: changed)*
4+
5+Операторът за разглеждане на случаи `case` сравнява стойността на израз с няколко *селектора*. Селектор може да бъде [[Const|константа]], диапазон или списък от тях разделени със [[Comma|запетаи]]. Селектора се отделя от действието с [[Colon|двуеточие]] (:).
6+
7+Да предположим, че искате да изпълните действие ако `b` е `1, 7, 2037,` или `5`; а в противен случай да изпълните друго действие. Може да го направите по следния начин:
8+
9+``` pascal
10+if (b = 1) or (b = 7) or (b = 2037) or (b = 5) then
11+ Statement1
12+else
13+ Statement2;
14+```
15+
16+Но в този случай ще е по-просто да направите списък от числата, за които искате да се изпълни Statement1. Това може да се направи с помощта на оператора `case`:
17+
18+``` pascal
19+case b of
20+ 1,7,2037,5: Statement1;
21+ otherwise Statement2
22+end;
23+```
24+
25+Общата форма на оператора `case` е:
26+
27+``` pascal
28+case expr of
29+ Selector1: Statement1;
30+ Selector2: Statement2;
31+ ...
32+ Selectorn: Statementn;
33+ otherwise Statement
34+end;
35+```
36+
37+Частта `otherwise` е незадължителна. Когато е налична, тя се може да се различава за различните компилатори. При повечето от тях се използва думата `else` вместо `otherwise`.
38+
39+Израза `expr` може да бъде всяка променлива или израз от дискретен тип. Не могат да се използват реални стойности!
40+
41+Селекторите трябва да съдържат само имена на константи или изписани стойности, т.е. в тях не могат да се използват променливи.
42+
43+---
44+*From the Free Pascal wiki, page "Basic Pascal Tutorial/Chapter 3/CASE/bg", as it stood on 2022-08-20 after a change by Kai Burghardt, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history