Difference between revisions of "Else/fr"

From Lazarus wiki
Jump to navigationJump to search
m
m (Fixed syntax highlighting)
 
Line 6: Line 6:
  
 
= [[If/fr|If]] [[Then/fr|then]] else =
 
= [[If/fr|If]] [[Then/fr|then]] else =
<syntaxhighlight>
+
 
 +
<syntaxhighlight lang="pascal">
 
   if (condition)
 
   if (condition)
 
   then ''true_statement''
 
   then ''true_statement''
Line 18: Line 19:
 
Si vous avez besoin de 2 instructions ou plus pour ''true_statement'' ou ''false_statement'', alors la suite d'instructions doit être placé dans un [[Block/fr|bloc]] délimité par [[Begin/fr|begin]] et [[End/fr|end]].
 
Si vous avez besoin de 2 instructions ou plus pour ''true_statement'' ou ''false_statement'', alors la suite d'instructions doit être placé dans un [[Block/fr|bloc]] délimité par [[Begin/fr|begin]] et [[End/fr|end]].
  
<syntaxhighlight>
+
<syntaxhighlight lang="pascal">
 
   if boolean_condition then
 
   if boolean_condition then
 
     begin
 
     begin
Line 35: Line 36:
 
Toutefois, dans le cas des instructions "if" imbriquées, si le ''else'' s'applique au ''if'' le plus interne, le point-virgule ''ne'' doit ''pas'' apparaître avent le ''else'', si le ''else'' s'applique au ''if'' le plus externe alors le point-virgule ''doit'' apparaître avant le ''else''.
 
Toutefois, dans le cas des instructions "if" imbriquées, si le ''else'' s'applique au ''if'' le plus interne, le point-virgule ''ne'' doit ''pas'' apparaître avent le ''else'', si le ''else'' s'applique au ''if'' le plus externe alors le point-virgule ''doit'' apparaître avant le ''else''.
  
<syntaxhighlight>
+
<syntaxhighlight lang="pascal">
 
   if a then
 
   if a then
 
       if b then  
 
       if b then  
Line 46: Line 47:
 
         end;
 
         end;
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 
Dans ce cas, le "else" s'applique au "if a"
 
Dans ce cas, le "else" s'applique au "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>
 +
 
Dans ce cas, le "else" s'applique au "if b". Si cela amène des ambiguïtés, elles peuvent être résolues en codant une instruction "else" "vide" :
 
Dans ce cas, le "else" s'applique au "if b". Si cela amène des ambiguïtés, elles peuvent être résolues en codant une instruction "else" "vide" :
<syntaxhighlight>
+
 
 +
<syntaxhighlight lang="pascal">
 
   if a then
 
   if a then
 
       if b then  
 
       if b then  
Line 71: Line 76:
 
       end
 
       end
 
</syntaxhighlight>
 
</syntaxhighlight>
<br>
+
 
 
Avis du traducteur : pour éviter les ambiguïtés dans de tels cas, forcer l'emploi des ''begin'' et ''end'' pour bien délimiter les blocs.
 
Avis du traducteur : pour éviter les ambiguïtés dans de tels cas, forcer l'emploi des ''begin'' et ''end'' pour bien délimiter les blocs.
 +
 
{{Keywords}}
 
{{Keywords}}
<br>
+
 
 
[[category:Pascal/fr]]
 
[[category:Pascal/fr]]
 
[[Category:Control Structures/fr]]
 
[[Category:Control Structures/fr]]

Latest revision as of 07:43, 14 January 2020

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

Else dans la référence du langage

Else est un mot-clé qui introduit une action à faire quand la condition du if n'est pas vérifiée.

If then else

  if (condition)
  then ''true_statement''
  else ''false_statement'';

La condition est évaluée, si la valeur est vraie alors true_statement est exécuté sinon false_statement est exécuté. La valeur de condition doit se ramener à un booléen sous peine d'erreur de compilation.

Plus d'instructions dans l'instruction "if then else"

Si vous avez besoin de 2 instructions ou plus pour true_statement ou false_statement, alors la suite d'instructions doit être placé dans un bloc délimité par begin et end.

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

Dans un usage normal, l'instruction "else" est une exception spéciale à la règle qui veut que chaque instruction est suivie d'un point-virgule. Ni le mot-clé "else" ni l'instruction qui le précède immédiatement peuvent avoir un point-virgule qui le suit. Dans l'exemple ci-dessus, la première instruction "end" n'est pas suivie d'un point-virgule, mais la dernière l'est.

Toutefois, dans le cas des instructions "if" imbriquées, si le else s'applique au if le plus interne, le point-virgule ne doit pas apparaître avent le else, si le else s'applique au if le plus externe alors le point-virgule doit apparaître avant le else.

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

Dans ce cas, le "else" s'applique au "if a"

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

Dans ce cas, le "else" s'applique au "if b". Si cela amène des ambiguïtés, elles peuvent être résolues en codant une instruction "else" "vide" :

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

Avis du traducteur : pour éviter les ambiguïtés dans de tels cas, forcer l'emploi des begin et end pour bien délimiter les blocs.


Keywords: begindoelseendforifrepeatthenuntilwhile