Re-demander à l'utilisateur après l'entrée non valide en Java
Je suis en train d'écrire ce programme en java où j'ai besoin de re-invite l'utilisateur à la suite d'une entrée non valide. Je suis arrivé à une solution seulement pour découvrir que si l'utilisateur saisit une autre entrée non valide après la ré-invite alors il continue. Quelqu'un peut-il svp me montrer une meilleure solution? Je vais vous montrer ce que j'avais de toute façon:
System.out.println("What is your age?\n");
age = userInput.nextInt();
if((age > 120) || (age < 1)) {//error message
System.out.println("ERROR Please enter a valid age");
System.out.println("");
System.out.println("What is your age?\n");
age = userInput.nextInt();
}//end if
si l'utilisateur a entré une entrée non valide après qu'ils ont été invité à nouveau, le programme serait tout simplement continuer, comment puis-je surmonter cela?
- Vous avez besoin d'un type de boucle, par exemple un do-while. Je pense que vous avez déjà deviné que, en regardant vos balises...
Vous devez vous connecter pour publier un commentaire.
Remplacer
if
avecwhile
.BAM, le problème est résolu.
Utiliser un
while
boucle.Vous pourriez le mettre dans une boucle while, de sorte qu'il conserve en boucle jusqu'à ce que les conditions sont remplies --
utiliser do-while:
À propos de cet
---->Une fois l'enregistrement est votre entrée est vide ou appuyé sur la barre d'espace
------> Plusieurs fois le check - est votre entrée est vide ou appuyé sur la barre d'espace
Important:
N'oubliez pas que l'entrée doit être une chaîne statique dans ce cas.
//Aide-lors de la boucle, ce problème peut être abordé.
0123
est un NIP valide, mais le0
serait tronquée comme un int.0123
serait analysée comme123
. Le même problème se produit avec les codes postaux aux états-unis, les codes postaux sont à 5 chiffres et obtenir plus que vous aller du Nord au Sud et de l'Est à l'Ouest. Dans le nord-est, ils commencent par0
. Donc,02010
analysaient comme2010
ce qui n'est pas un code POSTAL valide. Espérons-le, qui fait sens.