<< Retour au sommaire

 

La structure conditionnelle If

 

 

 

Table des matières

  1. L’embranchement de base ;
  2. L’indentation ;
  3. L’imbrication de conditions.

 

L’embranchement de base

 

Le langage script de JAWS vous permet d’orienter l’exécution du programme selon le résultat de la vérification d’une ou de plusieurs conditions.

Cette structure conditionnelle est dite « Embranchement conditionnel »…

 

Concernant l’utilisation basic de l’embranchement conditionnel, en français, on écrirait ceci :

Si Condition Ok, Alors

 Exécute traitement

Fin de la structure Si.

 

Premier constat, l’embranchement conditionnel se présente sous la forme d’un bloc qui contient une première ligne d’instruction dans laquelle l’on interroge une expression, une condition.

-         Si cette condition est vrai, par exemple (si la variable MotDePasse est bien égale à « toto »), eh bien, toutes les lignes de code situées entre la première ligne qui débute par le mot clé « If », et la dernière ligne du bloc qui se termine par le mot clé « EndIf », sont exécutées.

-         Sinon, dans le cas contraire, ces lignes d’instructions situées dans le bloc sont ignorées, l’exécution du programme passe par-dessus ! Il reprend néanmoins le fil de son exécution juste après le « EndIf ».

Quel acrobate !

 

  Voici maintenant un exemple concret :

Dans Word, écrivez un texte et positionnez le curseur sur un mot.

Ensuite, exécutez le script à partir d’un raccourci clavier. Si le mot courant est Bonjour, JAWS vous dira « Vous dites bonjour », sinon, il demeurera silencieux…

 

Script PrononceSelonMot ()

If GetWord () == "Bonjour" Then

;La condition est remplie.

  SayString ("Vous dites bonjour")

EndIf

EndScript

 

Bon, rien de bien compliqué !

Seulement, dans ce genre de structure basic, on prévoit le cas de figure où la condition est vraie, mais l’on ne propose rien dans le cas contraire…

Alors, améliorons notre script…

 

Si le mot courant est Bonjour, JAWS dit, « Vous dites bonjour », sinon, JAWS dit, « Vous ne dites pas  bonjour ».

 

En français, on écrirait le script de la manière suivante :

Si MotCourant égale Bonjour Alors,

JAWS prononce: Vous dites bonjour.

Sinon,

JAWS prononce : Vous ne dites pas bonjour.

Fin de la structure Si.

 

En langage scripts, ça donnerait ceci :

Script PrononceSelonMot ()

If GetWord () == "Bonjour" Then

 SayString ("Vous dites bonjour")

Else

  SayString (« Vous ne dites pas bonjour »)

EndIf

EndScript

 

Attention ! La vérification d’une condition doit être réalisée avec les opérateurs appropriés, ce sont des opérateurs dit « de comparaison ».

Vous trouverez la liste de ces opérateurs dans le manuel intitulé :

« 16 Les opérateurs ».

 


L’indentation

 

L’ensemble de la structure comportant les instructions « If Then EndIf » fait partie d’un bloc unique.

De façon que la lisibilité d’un même bloc soit optimisée, le « If » et le « EndIf » doivent débuter sur des nouvelles lignes et doivent être alignés verticalement pour correspondre.

Le code contenu dans les blocs « If » « EndIf » et « Else » « EndIf », qui est exécuté, si, et seulement si la condition est vraie, doit être décalé de quelques caractères vers la droite histoire de faire ressortir le concept d’appartenance.

En programmation, on appelle se décalage, une « indentation ».

Par exemple, si le mot courant est « Sophie », on dit « Bonjour Sophie ».

If GetWord ()== »Sophie » Then

  SayString (« Bonjour chère Sophie »)

EndIf

 

Ici, comme la ligne SayString (« Bonjour chère Sophie ») correspond au traitement du bloc, cette ligne est imbriquée dans le bloc par une indentation de 2 espaces.

 


L’imbrication de conditions

 

Maintenant, histoire de compliquer un peu, nous allons introduire une autre condition.

 

D’abord en français :

Si MotCourant égal bonjour, alors,

  JAWS prononce : vous dites bonjour.

Sinon, Si motCourant égal Au revoir, alors,

  JAWS prononce : vous dites au revoir.

  Sinon,

    JAWS prononce, : vous ne dites rien d’intéressant.

  Fin de la deuxième structure SI.

Fin de la première structure Si.

 

Codons l’exemple avec le langage script !

Script PrononceSelonMot ()

If GetWord () == "Bonjour" Then

  ;La première condition est remplie.

  SayString ("Vous dites bonjour")

Else If GetWord () == "Aurevoir" Then

    ;La deuxième condition est remplie.

    SayString ("Vous dites au revoir")

  Else

    ;Aucune des 2 conditions n'est remplie.

    SayString ("Vous ne dites rien d'intéressant")

  EndIf

EndIf

 

Vous venez donc de constater, et avec le plus grand des bonheurs bien sûr, que l’on pouvait placer un bloc « If » comme traitement à un autre bloc « If ».

Attention toutefois à bien respecter les indentations !

En effet, un bloc « If » qui est le traitement d’un autre bloc « If », doit lui aussi respecter l’imbrication hiérarchique des blocs.

 

En termes d’imbrication, voici une autre syntaxe correcte.

D’abord, en analyse…

Nous allons déclarer une variable appelée Nombre.

Nous lui affecterons une valeur.

Ensuite, nous comparerons la valeur de la façon suivante :

 

Si Nombre inférieur à 10 Alors,

  Si nombre inférieur à 5 alors,

    JAWS prononce : «La valeur est inférieure à 5.

  Sinon,

    JAWS prononce : La valeur est supérieure à 5 et inférieure à 10.

  Fin de la deuxième structure Si.

 Sinon,

  JAWS prononce : La valeur est égale ou supérieure à 10.

Fin de la première structure Si.

 

Observez bien l’indentation !

Allez, voici maintenant le code du script :

 

Script CalculeTrancheNombres ()

Var Int Nombre ;Déclaration d'une variable de type entier.

Let Nombre = 15 ;Initialisation de la variable.

If Nombre < 10 Then

  ;La valeur est inférieure à 10.

  If Nombre < 5 Then

    ;La valeur est inférieure à 5.

    SayString ("La valeur est inférieure à 5")

  Else

  ;La valeur est comprise entre 5 et 9.

    SayString ("La valeur est égale ou supérieure à 5 et inférieure à 10")

  EndIf

  ;La valeur est obligatoirement égale ou supérieure à 10.

Else

  SayString ("La valeur est supérieure à 10")

EndIf

EndScript

 

Ouf !

 

Philippe BOULANGER