Difference between revisions of "Else/ru"

From Lazarus wiki
Jump to navigationJump to search
(Created page with "{{else}} <br> [http://www.freepascal.org/docs-html/ref/refsu51.html#x144-15400013.2.3 Else at Language Reference] '''Else''' является Keyword/ru|ключевым с...")
 
m (Fixed syntax highlighting)
 
Line 1: Line 1:
 
{{else}}
 
{{else}}
<br>
+
 
 
[http://www.freepascal.org/docs-html/ref/refsu51.html#x144-15400013.2.3 Else at Language Reference]
 
[http://www.freepascal.org/docs-html/ref/refsu51.html#x144-15400013.2.3 Else at Language Reference]
  
Line 6: Line 6:
  
 
= [[If/ru|If]] [[Then/ru|Then]] Else =
 
= [[If/ru|If]] [[Then/ru|Then]] Else =
<syntaxhighlight>
+
 
 +
<syntaxhighlight lang="pascal">
 
   If (condition)
 
   If (condition)
 
   Then true_statement
 
   Then true_statement
Line 18: Line 19:
 
Если вам необходимо использовать два или более операторов в качестве инструкций ''true_statement'' или ''false_statement'', то вам следует сгруппировать эти операторы, поместив их в [[Block/ru|блок]] [[Begin/ru|Begin]] ... [[End/ru|End]].
 
Если вам необходимо использовать два или более операторов в качестве инструкций ''true_statement'' или ''false_statement'', то вам следует сгруппировать эти операторы, поместив их в [[Block/ru|блок]] [[Begin/ru|Begin]] ... [[End/ru|End]].
  
<syntaxhighlight>
+
<syntaxhighlight lang="pascal">
 
   if boolean_condition then
 
   if boolean_condition then
 
     begin
 
     begin
Line 35: Line 36:
 
Однако, в случае вложенных операторов ''if'', если ''else'' относится к ''внутреннему'' оператору ''if'', то перед ''else'' точку с запятой ставить ''не нужно''; если оператор ''else'' относится к внешнему оператору ''if'', то перед ним ''нужно'' ставить точку с запятой:
 
Однако, в случае вложенных операторов ''if'', если ''else'' относится к ''внутреннему'' оператору ''if'', то перед ''else'' точку с запятой ставить ''не нужно''; если оператор ''else'' относится к внешнему оператору ''if'', то перед ним ''нужно'' ставить точку с запятой:
  
<syntaxhighlight>
+
<syntaxhighlight lang="pascal">
 
   if a then
 
   if a then
 
       if b then  
 
       if b then  
Line 46: Line 47:
 
         end;
 
         end;
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 
В этом случае '''else''' относится к ''"if a"''
 
В этом случае '''else''' относится к ''"if a"''
<syntaxhighlight>
+
 
 +
<syntaxhighlight lang="pascal">
 
   if a then
 
   if a then
 
       if b then  
 
       if b then  
Line 58: Line 61:
 
         end;
 
         end;
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 
В этом случае '''else''' относится к ''"if b"''. Если это вызывает неясность, то это можно разрешить с помощью отсутствия кода в операторе '''else''':
 
В этом случае '''else''' относится к ''"if b"''. Если это вызывает неясность, то это можно разрешить с помощью отсутствия кода в операторе '''else''':
<syntaxhighlight>
+
 
 +
<syntaxhighlight lang="pascal">
 
   if a then
 
   if a then
 
       if b then  
 
       if b then  

Latest revision as of 07:45, 14 January 2020

Deutsch (de) English (en) español (es) suomi (fi) français (fr) русский (ru)

Else at Language Reference

Else является ключевым словом, представляющим действие, которое выполнится, если условие ложно.

If Then Else

  If (condition)
  Then true_statement
  Else false_statement;

Вначале вычисляется значение условия condition. Если оно истинно, то выполняется оператор true_statement, в противном случае выполняется оператор false_statement. Значение условия должно быть типа Boolean иначе возникнет ошибка.

Более одного оператора в конструкции "if then else"

Если вам необходимо использовать два или более операторов в качестве инструкций true_statement или false_statement, то вам следует сгруппировать эти операторы, поместив их в блок Begin ... End.

  if boolean_condition then
    begin
      statement_one;
      statement_two;
    end 
  else
    begin
      statement_three;
      statement_four;
    end;

При обычном использовании, оператор else является особым исключением из правил, согласно которому каждый оператор должен оканчиваться точкой с запятой. Ни для оператора else, ни для предшествующего ему оператора не требуется ставить точку с запятой. В примере выше первый оператор end не оканчивается точкой с запятой, а последний оканчивается.

Однако, в случае вложенных операторов if, если else относится к внутреннему оператору if, то перед else точку с запятой ставить не нужно; если оператор else относится к внешнему оператору if, то перед ним нужно ставить точку с запятой:

  if a then
      if b then 
        begin
           (..)
        end;
      else
        begin
           (..)
        end;

В этом случае else относится к "if a"

  if a then
      if b then 
        begin
           (..)
        end
      else
        begin
           (..)
        end;

В этом случае else относится к "if b". Если это вызывает неясность, то это можно разрешить с помощью отсутствия кода в операторе else:

  if a then
      if b then 
        begin
           (..)
        end
      else
  else
      begin
           (..)
      end


Ключевые слова: begindoelseendforifrepeatthenuntilwhile