Les conditions et les boucles

Avatar de Monsieur X
Description du chapitre et des ses objectifs :

Les conditions servent à réagir en fonction d'une variable. Nous allons apprendre les différents cas de conditions. Elles nous permettront de créer des boucles...

Image de Partie

Accéder directement à une des parties du cours :

Les conditions

Information : La condition s'exprime avec if (si) et else (sinon).


----->Premier cas : les chaînes de caractères
Les chaînes se comparent par l'égalité (mot-de-passe, etc...) avec L'OPERATEUR CONDITIONNEL == :
Code BATCH - Numéro de ligne
  1. @echo off
  2. set /p mdp=Entrez le mot de passe :
  3. if %mdp%==batch ( echo Vous etes arrive sur une page secrete ! ) else ( echo Mauvais mot de passe ! )
  4. pause

Mettez les parenthèses (pour l'instant elles ne servent à rien mais tout à l'heure, elles vous serviront !).

----->Second cas : les nombres
Cette fois-ci, il y a plus d'opérateurs conditionnels (ici appelés comparatifs) : égal, différent, strictement supérieur, etc...
Je vous ai préparé un tableau pour les comparatifs :
Type de comparaisonEquivalent en BATCH
EgalitEQU
DifférenceNEQ
Stricte inférioritLSS
Stricte supérioritGTR
Infériorité ou égalitLEQ
Supériorité ou égalitGEQ
Exemple :
Code BATCH - Numéro de ligne
  1. @echo off
  2. set /p saisie=Entrez un nombre :
  3. if /i %saisie% equ 5 ( echo Gagne !!! ) else ( echo Vous avez ecrit %saisie% au lieu de 5... )
  4. pause

Information : if /i sert à transformer la chaîne en nombre comme ça si l'utilisateur rentre n'importe quoi, on compare quand même...


----->Troisième cas : vérifier qu'un fichier existe
Essayez de supprimer un fichier inexistant... Bon, c'est pas donné , alors on va utiliser if exist pour vérifier que le fichier à supprimer existe :
Code BATCH - Numéro de ligne
  1. @echo off
  2. set /p fichier=Entrez le nom du fichier (avec l'extension) a supprimer :
  3. if exist %fichier% ( del %fichier% ) else ( echo %fichier% n'existe pas... )
  4. pause


----->Quatrième cas : les conditions pour les choices
Dans les choices, l'utilisateur sélectionne une réponse et l'ordinateur la stocke dans la variable %errorlevel%.
Si la première réponse est sélectionnée, alors %errorlevel% est égal à 1. Si la deuxième réponse est sélectionnée, alors %errorlevel% vaudra 2 et ainsi de suite...
Si %errorlevel% vaut 0, alors quelquechose c'est mal passé...
Voici un exemple de condition pour les choices :
Code BATCH - Numéro de ligne
  1. @echo off
  2. echo A : cafe
  3. echo B : lait
  4. choice /c AB /m "Que voulez-vous"
  5. if %errorlevel% equ 1 ( echo Vous voulez du cafe ) else ( echo Vous voulez du lait )
  6. pause

Je vous laisse apprécier le résultat .
Je vous ai dressé la liste des instructions de condition :
  • if : instruction de condition standard
  • else : alternative à if (exécute la commande si celle du if n'est pas respectée)
  • else if : autre alternative à if (exécute la commande si celle du if n'est pas respectée, mais c'est une alternative conditionnelle)
  • not : sert à exprimer le contraire de la condition qui suit le not
  • if exist : sert à chercher si un fichier ou un dossier existe.

Les boucles

Les boucles sont des instructions qui se répètent doit à l'infini, soit elles se répètent tant qu'une condition est remplie. Nous allons apprendre à créer nous-même nos boucles...

----->Premier cas : les boucles infinies
Les boucles infines sont les plus faciles à programmer : il faut juste créer une fonction qui s'appelle elle-même :

Code BATCH - Numéro de ligne
  1. @echo off
  2. :boucle
  3. echo Salut
  4. goto boucle

Bon, je vous épargne les détails, mais le programme écrira une bonne infinité de fois le mot "Salut" !

----->Second cas : les boucles conditionnelles
Les boucles conditionnelles sont à peine plus compliquées que les boucles infinies : on leur rajoute juste une condition avant d'entamer un nouveau tour de boucle :
Code BATCH - Numéro de ligne
  1. @echo off
  2. set /a compteur=1
  3. :boucle
  4. echo %compteur% sur 10.
  5. set /a compteur+=1
  6. if %compteur% leq 10 ( goto boucle )
  7. pause

Et voilà le travail :

Image utilisateur

L'heure de l'exercice a sonné : MUAHAHAHAHA (rire diabolique )
Sujet : Créer un programme qui fait des tables de multiplications pour feignasses .
Mode de fonctionnement : On demandera à l'utilisateur d'entrer le nombre dont on veut la table, puis le nombre d'arrivée de la table. Et enfin, on affiche la table.
Pré-requis : la commande @echo off, la commande echo, les variables (pour la table, le nombre d'arrivée...) et les boucles conditionnelles.
Bonne programmation .
Attention : La suite est la correction de cet exercice. Essayez d'abord de sortir quelquechose et c'est à ce moment-là que vous pourrez regarder la suite...

Secret (cliquez pour afficher)
Code BATCH - Numéro de ligne
  1. @echo off
  2. set /p table=Table de
  3. ::On demande la TABLE à faire à l'utilisateur
  4. cls
  5. set /p jusq=Jusqu'a
  6. ::On demande à l'utilisateur la PORTEE de la table
  7. set /a jusq+=1
  8. ::Arrange la boucle
  9. cls
  10. set /a compteur=0
  11. ::C'est le COMPTEUR DE TOUR (sert aussi de MULTIPLICATEUR)
  12. echo Table de %table% :
  13. echo.
  14. :boucle
  15. set /a resultat=%table% * %compteur%
  16. echo %table% x %compteur% = %resultat%
  17. set /a compteur+=1
  18. if %compteur% lss %jusq% ( goto boucle )
  19. rem Tant qu'on n'est pas arrivé à la fin
  20. echo.
  21. pause
  22. exit

J'espère que, par cet exercice, vous avez bien compris la notion de boucles (ce sera très utile pour la suite).


Notre cerveau n'est pas sur le point d'exploser , mais nous verrons comment organiser un long et grand projet en BATCHn vu le nombre de connaissances que nous avons acquises...

Chapitre précédent - Sommaire - Chapitre suivant

Nos rédacteurs et membres sont pour la plupart ouverts à des remarques constructives et servir à alerter le rédacteur du cours, des fautes éventuelles ou de propositions et nouvelles perspectives de cours etc ...
Pour ce faire cliquez ici

Postez vous aussi un commentaire à cette partie via le lien que voici