Sign in Join
Wiki copytemporary

Basic Pascal Tutorial/Chapter 3/CASE/bg

English · Español · Français · Български · 中文(中国) · 日本語

CASE

(author: Tao Yue, state: changed)

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

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

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

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

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

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

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

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

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

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


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.

Revision 1, last changed by WikiArchive .

Edited on wiki.freepascal.org by 2 people, 2021–2022

From the official wiki's backup of 26 May 2024: who edited this page there, and when. Edits made there after that date were not recorded, and the earlier versions are not shown here; the main page says why.

WhenWhoWhat changed
AlpinistbgCreated page
Alpinistbg
Alpinistbg (minor)
Kai BurghardtKai Burghardt moved page CASE/bg to Basic Pascal Tutorial/Chapter 3/CASE/bg: tidy up main name space: create subpage hierarchy for basic Pascal tutorial [cf. [[Special: PermaLink/149778#Cluttering of... (minor)
Kai Burghardtbypass redirects [cf. discussion]
Kai Burghardtbypass language bar/categorization template redirect [cf. discussion] (minor)

Talk about this page

Nobody has opened a bench for this page yet. Sign in to open one.