Probléme Calculatrice BATCH

YCC -  
Quester4 Messages postés 150 Statut Membre -
Bonjour, Pourquoi ma Calculatrice ne fonctionne pas ?
Un Message me dit: " [l Manque un Opérande "
Voila le code:

@echo off
title Calculatrice
color F
echo [1] Addition
echo [2] Soustraction
echo.
set /p choix=Votre Choix:
if %choix%==1 (
:debut
set /p A=Entrer le nombre A:
set /a A=%A%

set /p B=Entrer le Nombre B:
set /a B=%B%

set /a fin=%A%+%B%
echo %A% + %B% = %fin%
pause>nul
cls
goto debut
)
if %choix%==2 (
:debut2
set /p A=Entrer le nombre A:
set /a A=%A%

set /p B=Entrer le Nombre B:
set /a B=%B%

set /a fin=%A%-%B%
echo %A% - %B% = %fin%
pause>nul
cls
goto debut2
)

Merci D'avance.

1 réponse

  1. Quester4 Messages postés 150 Statut Membre 126
     
    Bonjour,

    Voici un code plus propre :
    @echo off
    title Calculatrice
    color F
    
    echo [1] Addition
    echo [2] Soustraction
    echo.
    set /p choix=Votre Choix : 
    if "%choix%"=="1" goto :addition
    if "%choix%"=="2" goto :soustraction
    
    :addition
    set /p A=Entrer le nombre A : 
    set /p B=Entrer le Nombre B : 
    set /a fin=%A%+%B%
    echo %A% + %B% = %fin%
    pause>nul
    cls
    goto addition
    
    :soustraction
    set /p A=Entrer le nombre A : 
    set /p B=Entrer le Nombre B : 
    set /a fin=%A%-%B%
    echo %A% - %B% = %fin%
    pause>nul
    cls
    goto soustraction

    Je ne vois pas dans celui-ci ce qui n'est pas censé fonctionner.

    Dans le tien, la définition de %A% et de %B% comme étant eux-même, c'est assez étrange, et probablement inutile... Et ce qui doit provoquer l'erreur, c'est surtout les set /a, que tu utilises sans avoir de calcul. Autant utiliser set sans arguments... Mais mieux vaut même ne pas faire cette étape, étant donné que c'est inutile de définir une variable par elle-même.

    Ensuite, il y a les labels et les goto à l'intérieur de conditions If, ce n'est pas normal. Fais plutôt en sorte que la condition fasse un goto, plutôt que d'y intégrer les fonctions. D'ailleurs, pour le bon fonctionnement des If, il est préférable de mettre des guillemets (comme je l'ai fait dans ce code).
    0