Les conditions et les boucles
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...
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 == :
@echo off
set /p mdp=Entrez le mot de passe :
if %mdp%==batch ( echo Vous etes arrive sur une page secrete ! ) else ( echo Mauvais mot de passe ! )
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 comparaison | Equivalent en BATCH |
| Egalit | EQU |
| Différence | NEQ |
| Stricte infériorit | LSS |
| Stricte supériorit | GTR |
| Infériorité ou égalit | LEQ |
| Supériorité ou égalit | GEQ |
Exemple :
@echo off
set /p saisie=Entrez un nombre :
if /i %saisie% equ 5 ( echo Gagne !!! ) else ( echo Vous avez ecrit %saisie% au lieu de 5... )
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 :
@echo off
set /p fichier=Entrez le nom du fichier (avec l'extension) a supprimer :
if exist %fichier% ( del %fichier% ) else ( echo %fichier% n'existe pas... )
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 :
@echo off
echo A : cafe
echo B : lait
choice /c AB /m "Que voulez-vous"
if %errorlevel% equ 1 ( echo Vous voulez du cafe ) else ( echo Vous voulez du lait )
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 :
@echo off
:boucle
echo Salut
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 :
@echo off
set /a compteur=1
:boucle
echo %compteur% sur 10.
set /a compteur+=1
if %compteur% leq 10 ( goto boucle )
pause
Et voilà le travail

:
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)@echo off
set /p table=Table de
::On demande la TABLE à faire à l'utilisateur
cls
set /p jusq=Jusqu'a
::On demande à l'utilisateur la PORTEE de la table
set /a jusq+=1
::Arrange la boucle
cls
set /a compteur=0
::C'est le COMPTEUR DE TOUR (sert aussi de MULTIPLICATEUR)
echo Table de %table% :
echo.
:boucle
set /a resultat=%table% * %compteur%
echo %table% x %compteur% = %resultat%
set /a compteur+=1
if %compteur% lss %jusq% ( goto boucle )
rem Tant qu'on n'est pas arrivé à la fin
echo.
pause
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