Sign in Join
Wiki copytemporary

Else/ru: what changed

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

Title: Else/ru

OldNewLine
1+[Else at Language Reference](http://www.freepascal.org/docs-html/ref/refsu51.html#x144-15400013.2.3)
2+
3+**Else** является [[Keyword/ru|ключевым словом]], представляющим действие, которое выполнится, если условие [[False/ru|ложно]].
4+
5+# [[If/ru|If]] [[Then/ru|Then]] Else
6+
7+``` pascal
8+ If (condition)
9+ Then true_statement
10+ Else false_statement;
11+```
12+
13+Вначале вычисляется значение условия *condition*. Если оно [[True/ru|истинно]], то выполняется оператор *true_statement*, в противном случае выполняется оператор *false_statement*. Значение условия *должно* быть типа [[Boolean/ru|Boolean]] иначе возникнет ошибка.
14+
15+### Более одного оператора в конструкции "if then else"
16+
17+Если вам необходимо использовать два или более операторов в качестве инструкций *true_statement* или *false_statement*, то вам следует сгруппировать эти операторы, поместив их в [[Block/ru|блок]] [[Begin/ru|Begin]] ... [[End/ru|End]].
18+
19+``` pascal
20+ if boolean_condition then
21+ begin
22+ statement_one;
23+ statement_two;
24+ end
25+ else
26+ begin
27+ statement_three;
28+ statement_four;
29+ end;
30+```
31+
32+При обычном использовании, оператор **else** является особым исключением из правил, согласно которому каждый оператор должен оканчиваться точкой с запятой. Ни для оператора **else**, ни для предшествующего ему оператора не требуется ставить точку с запятой. В примере выше первый оператор **end** не оканчивается точкой с запятой, а последний оканчивается.
33+
34+Однако, в случае вложенных операторов *if*, если *else* относится к *внутреннему* оператору *if*, то перед *else* точку с запятой ставить *не нужно*; если оператор *else* относится к внешнему оператору *if*, то перед ним *нужно* ставить точку с запятой:
35+
36+``` pascal
37+ if a then
38+ if b then
39+ begin
40+ (..)
41+ end;
42+ else
43+ begin
44+ (..)
45+ end;
46+```
47+
48+В этом случае **else** относится к *"if a"*
49+
50+``` pascal
51+ if a then
52+ if b then
53+ begin
54+ (..)
55+ end
56+ else
57+ begin
58+ (..)
59+ end;
60+```
61+
62+В этом случае **else** относится к *"if b"*. Если это вызывает неясность, то это можно разрешить с помощью отсутствия кода в операторе **else**:
63+
64+``` pascal
65+ if a then
66+ if b then
67+ begin
68+ (..)
69+ end
70+ else
71+ else
72+ begin
73+ (..)
74+ end
75+```
76+
77+---
78+*From the Free Pascal wiki, page "Else/ru", as it stood on 2020-01-14 after a change by Trev, 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).*
79+Category: Control Structures/ru
80+Category: Pascal/ru

Back to history