Test conditionnel if

Utilisez if .. then ou if .. then .. else pour exécuter le code correspondant quand la condition est vraie. Contrairement aux langages de type C : l’expression conditionnelle en Pascal n’a pas besoin d’être entourée de parenthèses.

var
  A: Integer;
  B: boolean;
begin
  // Une seule instruction si la condition est valide, pas besoin de begin end
  if A > 0 then
    DoSomething;

  // Plusieurs instructions après la condition, obligatoirement encadrées par begin end
  if A > 0 then
  begin
    DoSomething;
    AndDoSomethingMore;
  end;

  // Structure if-else à une seule instruction
  if A > 10 then
    DoSomething
  else
    DoSomethingElse;

  // Logique identique à l’exemple précédent : stocker le résultat de comparaison dans une variable booléenne
  B := A > 10;
  if B then
    DoSomething
  else
    DoSomethingElse;
end;Langage du code : JavaScript (javascript)

Règle de liaison du else

Le else se rattache au if le plus proche sans else associé. Le code ci-dessous fonctionne comme prévu :

if A <> 0 then
  if B <> 0 then
    AIsNonzeroAndBToo
  else
    AIsNonzeroButBIsZero;Langage du code : HTML, XML (xml)

Ici le else appartient au if B <> 0 interne.

Les if imbriqués sans bloc sont syntaxiquement autorisés mais peu lisibles. Il est recommandé d’encadrer la logique imbriquée avec begin … end pour délimiter clairement les blocs ; même avec une indentation désordonnée, on distingue facilement les portées et évite les bugs lors de l’ajout ou la suppression de branches.

Écriture standard optimisée :

if A <> 0 then
begin
  if B <> 0 then
    AIsNonzeroAndBToo
  else
    AIsNonzeroButBIsZero;
end;Langage du code : HTML, XML (xml)
  • Pas de parenthèses autour de la condition du if (obligatoire en C/C++/Java, l’inverse en Pascal) ;
  • On peut omettre begin end s’il n’y a qu’une ligne après then ; obligatoire pour plusieurs lignes ;
  • Le else se rattache au if interne le plus proche ; utilisez systématiquement des blocs sur les structures imbriquées pour supprimer toute ambiguïté ;
  • Les expressions de comparaison (ex: A>10) peuvent être directement affectées à une variable booléenne.

Voici un exemple complet exécutable : système de notation par note

Règles logiques :

  • ≥90 → A
  • ≥80 et <90 → B
  • ≥60 et <80 → C
  • <60 → D
{$ifdef FPC} {$mode objfpc} {$H+} {$endif}
{$codepage utf8}
program ScoreLevel;

var
  score: Integer;
begin
  Write('Entrez votre note d’examen : ');
  ReadLn(score);

  if score >= 90 then
    Writeln('Note : A')
  else if score >= 80 then
    Writeln('Note : B')
  else if score >= 60 then
    Writeln('Note : C')
  else
    Writeln('Note : D');

  ReadLn;
end.Langage du code : PHP (php)

Compiler et lancer le programme

Entrez votre note d’examen : 96
Note : A

Le programme vous demande de saisir une note, puis affiche la mention correspondante.

Les caractères non latins peuvent s’afficher déformés, ajoutez cette ligne : {$codepage utf8}

On peut aussi encapsuler le calcul de la mention dans une fonction.

{$ifdef FPC} {$mode objfpc} {$H+} {$endif}
{$codepage utf8}
program ScoreLevelFunc;

function GetLevel(s: Integer): string;
begin
  if s >= 90 then
    Result := 'A'
  else if s >= 80 then
    Result := 'B'
  else if s >= 60 then
    Result := 'C'
  else
    Result := 'D';
end;

var
  score: Integer;
begin
  Write('Votre note : ');
  ReadLn(score);
  Writeln('Votre mention : ', GetLevel(score));
  ReadLn;
end.Langage du code : PHP (php)

Test conditionnel if

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *