;/fr

From Free Pascal wiki
Jump to: navigation, search

English (en) suomi (fi) français (fr)

Le point-virgule, ; est utilisé pour séparer des instructions (contrairement à d'autres langages où il termine une instruction). C'est obligatoire pour la plupart des instructions, volontaire dans certaines instructions et interdit dans une instruction particulière.

(En vue d'expliquer l'emploi où les mot-clés Pascal sont mentionnés dans cet article, ils apparaîtront en MAJUSCULES. Les listings de programme seront en minuscules.)

Le point-virgule est généralement obligatoire, et exigé après chaque instruction. Les endroits où il est optionnel sont :

  • avant une instruction END
  • avant le point à la fin du PROGRAM ou de l'UNITE

Les endroits où le point virgule est interdit sont :

  • Avant l'instruction BEGIN qui commence une instruction composée
  • Avant une clause ELSE immédiatement à la suite d'un IF imbriqué.

C'est généralement interdit devant la clause ELSE dans une instruction IF ou une instruction CASE. Toutefois, dans le cas d'une instruction IF imbriquée, il peut être requis devant un ELSE s'appliquant à un autre IF plus tôt dans le texte du programme et que le IF proche n'est pas associé à une instruction ELSE. Ceci est expliqué plus bas.

Un point-virgule est interdit avant la clause ELSE qui s'applique à l'immédiatement dernier IF afin que le compilateur puisse savoir où le IF termine. Par exemple :

(*0001*)  if continuance then                     
(*0002*)    if separated then                   
(*0003*)       Condition(a)                       
(*0004*)    else                                
(*0005*)       if combined then                 
(*0006*)          Condition(b)
(*0007*)       else                                          
(*0008*)          Condition(c);
(*0009*)  Calculate_fee;

Pour cet exemple, le point-virgule est interdit en ligne 3 (sinon le ELSE en ligne 4 s'appliquerait au IF de la ligne 1).

S'il y avait un BEGIN entre les lignes 1 et 2 et un END après la ligne 8, un point-virgule devrait être interdit sur la ligne 1.

Parce que la ligne 6 n'a pas de point-virgule, le ELSE de la ligne 7 s'applique au IF de la ligne 5. Si la ligne 6 se terminait par un point-virgule alors le ELSE de la ligne 7 s'appliquerait au IF de la ligne 1 (le ELSE en ligne 4 s'applique au IF en ligne 2). Ainsi le point-virgule est interdit dans ce contexte en vue d'obtenir ce résultat.

Pourtant, si vous vouliez que le ELSE s'applique en ligne 1, le point-virgule serait obligatoire en ligne 6, en vue de "fermer" le IF en ligne 5.

S'il y avait un IF au dessus de la ligne 1, le point-virgule de la ligne 8 ferme le IF de la ligne 1, et si un ELSE était placé après la ligne 8, il ne s'appliquerait pas au IF de la ligne1.

Il est préférable d'entourer toutes les instructions IF par des blocs BEGIN / END s'il peut y avoir une interrogation sur quel ELSE s'applique à quel IF, dans un ensemble de IF imbriqués.

Attention : les indentations n'ont aucun caractère syntaxique, il convient donc d'être vigilant, elles peuvent être mal formulées et induire ainsi en erreur.


Symboles: * (astériques):= (devient): (deux-points)= (égal à); — > (supérieur à)< (inférieur à)- moins)<> (non égal à)). (point)+ (plus); (point-virgule)/ (barre oblique)