NEQ mettre plusieurs variables
Résolu/Fermé
A voir également:
- NEQ mettre plusieurs variables
- Javascript somme de deux variables ✓ - Forum Javascript
- Graphique 3 variables - Forum Excel
- Nuage de points excel 3 variables ✓ - Forum Bureautique
- Permutation de plusieurs variables ✓ - Forum C
- Algorithme permutation 3 variables ✓ - Forum C
2 réponses
jee pee
Messages postés
40579
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
21 décembre 2024
9 460
23 déc. 2023 à 20:12
23 déc. 2023 à 20:12
Bonjour,
Comme tu as déjà testé 1 et 2 avant, le NEQ ne sert pas, on est certain à cet endroit que A ne contient ni 1 ni 2
Tu peux alors faire :
@echo off CLS :debut echo. set /p A=Confiture [1] Nutella [2] ? echo. if "%A%" == "1" goto Confiture if "%A%" == "2" goto Nutella echo Réponse non conforme goto debut
Salut :)
oui bien sûr on peut, NEQ veut dire "pas égal"
Regarde ici ça pourrait t'aider : https://ss64.com/nt/if.html
Je te fait un exemple sympa en utilisant NEQ :
@echo off :Debut set /a tempo=0 set /a tip=0 set /a top=0 set texte=Vous avez choisi cls echo Bonjour ! echo Nous avons de la confiture et du nutella ! :Matin timeout /t 2 /nobreak >nul echo Confiture [1] ou Nutella [2] ? set /p A= :Sucre if "%A%" NEQ "1" goto Nescafe goto Confiture :Nescafe if "%A%" NEQ "2" goto Tartine goto Nutella :Tartine cls if %tempo% geq 1 goto Lait set /a tempo = tempo + 1 echo Choix non valide. echo Veuillez entrer 1 pour la confiture echo ou bien 2 pour le Nutella. set /p A= goto Sucre :Lait if %tempo% geq 2 goto Gourmant set /a tempo = tempo + 1 echo Une erreur est survenue, echo Svp veuillez reformuler votre choix : goto Matin :Confiture set /a flux = flux + 1 :Fruit if %tip%==2 goto Creme cls echo %texte% la confiture. echo Veuillez patienter. PING -n 2 127.0.0.1 >nul cls echo %texte% la confiture. echo Veuillez patienter.. PING -n 2 127.0.0.1 >nul cls echo %texte% la confiture. echo Veuillez patienter... PING -n 2 127.0.0.1 >nul set /a tip = tip + 1 goto Fruit :Nutella set /a flux = flux + 1 :Chocolat if %top%==2 goto Creme cls echo %texte% le Nutella. echo Veuillez patienter. PING -n 2 127.0.0.1 >nul cls echo %texte% le Nutella. echo Veuillez patienter.. PING -n 2 127.0.0.1 >nul cls echo %texte% le Nutella. echo Veuillez patienter... PING -n 2 127.0.0.1 >nul set /a top = top + 1 goto Chocolat :Gourmant set texte=Voici echo Choix non valide. Voulez vous du Nutella ET de la Confiture ? echo (oui/non) set Chx=null set /p Chx= Votre choix : if %Chx%==oui goto Confiture goto Debut :Creme if "%Chx%" neq "oui" goto fin if %flux%==1 goto Nutella if "%flux%" equ "2" goto fin :fin cls echo !! Bon Appetit !! timeout /t 3 /nobreak >nul Exit
23 déc. 2023 à 20:45
Juste pour répondre au fond de la question, en mettant le NEQ avant de tester 1 ou 2, on pourrait faire
24 déc. 2023 à 08:21
Bonjour,
On peut se contenter de rendre tout autre choix impossible via une commande CHOICE qui sera moins bavarde
24 déc. 2023 à 13:57
D'accord merci
24 déc. 2023 à 18:13
Bonsoir ;)
Avec la fonction Choice, Si on veut éviter "les bips" de bug, on mettra toute l'alphabet et le pavé numérique.
Important, pour faire pro'pre on enrobera aussi le %errorlevel% dans une variable. De cette façon on verrouille la valeur du choix dans une variable, %errorlevel% pouvant aisément changer de valeur par la suite selon la complexité du code.
Exemple : Le plus sain, et code facilement modulable Avec le comparatif EQU :
Le plus amusant, avec le comparatif NEQ :
Pour répondre à la question, le comparatif NEQ est excluant, si on l'utilise c'est pour exclure les autres valeurs mais continuer si la valeur comparée est correcte. ;)
Il faut utiliser les comparatifs au plus simple, ou sinon il faudra adapter le code selon le comparatif qu'on utilise, les deux codes en haut sont très différents, selon on utilise EQU ou NEQ mais ils ont exactement le même fonctionnement.
24 déc. 2023 à 18:20
oui, pourquoi faire simple quand on peut faire compliqué