La condition du IF ne s'applique pas

Résolu
Jean-Elie -  
 Utilisateur anonyme -
Bonjour,

Je cherche à faire converger une variable vers une valeur en me basant sur un test. Ici le test est simplement "inférieur à R?". Ici la boucle for comprend 2 itérations pour le débogage mais à terme il y en aura 20.
.
Voici le programme:
.
@echo on
rem Initialisation des varaiables
set /A R=102 rem valeur recherchée
set /A test=10
set /A Prec=10
set /A incre=1000
set /A test1=0
set /A delta=1000
set petit="faux"
pause
rem boucle pour convergence
for %%A in ( 1 2 ) do (
rem Lancement calcul valeur test
If /i %test% LEQ %R% set petit="vrai"
echo %petit%
If /i %petit%=="vrai" set test1 = %test%
echo %test1%

If /i %petit%=="faux" set /A incre = %incre%/10
echo %incre%

set /A test = %test1% + %incre%
echo %test%
set /A delta = %test% - %test1%
echo %delta%
rem if %delta% LEQ %Prec% ( echo "solution trouvée %test%" )

set petit="faux"
pause
)
pause
.
Lorsqu'on le lance on aperçoit que les conditions des IFs ne s'appliquent jamais.
.
Avec les variables test=10 et R=102:
If /i %test% LEQ %R% set petit="vrai"
echo %petit%
devrait être vrai or la fonction "echo" nous montre que la valeur reste inchangée
.
Et aussi
If /i %petit%=="faux" set /A incre = %incre%/10
echo %incre%
Vu que la première condition ne s'est pas exécuté on obtient "faux"=="faux" or la variable est toujours égale à 1000 et non à 100.
.
.
J'imagine que c'est une erreur de syntaxe sur le IF car les fonctions soumises à condition fonctionnent si elles sont lancées séparément.
.
J'espère que quelqu'un pourra m'aider sur mon problème, Merci d'avance!

2 réponses

  1. Utilisateur anonyme
     
    Salut

    En testant, il y a un soucis sur la boucle FOR.
    Quand on l'enlève, "petit" passe bien à "vrai". Par contre, "test1" ne passe pas à 10.
    0