Comment s'assurer que l'utilisateur n'a pas à entrer des lettres
Dans mon programme, l'utilisateur dispose de choisir ce qu'ils veulent faire et ensuite appuyez sur le numéro suivant pour le choix et puis appuyez sur entrée.
Droit maintenant, je l'ai si bien que tout nombre qui n'est pas un choix donnera une erreur, mais maintenant, je veux vous assurer qu'il est dit d'erreur si l'utilisateur tape dans une lettre par exemple "fadhahafvfgfh"
voici mon code...
import java.util.Scanner;
public class AccountMain {
public static void selectAccount(){
System.out.println("Which account would you like to access?");
System.out.println();
System.out.println("1 = Business Account ");
System.out.println("2 = Savings Account");
System.out.println("3 = Checkings Account");
System.out.println("4 = Return to Main Menu");
menuAccount();
}
public static void menuAccount(){
BankMain main = new BankMain();
BankMainSub sub = new BankMainSub();
BankMainPart3 main5 = new BankMainPart3();
Scanner account = new Scanner(System.in);
int actNum = account.nextInt();
if (actNum == 1){
System.out.println("*Business Account*");
sub.businessAccount();
}
else if (actNum == 2){
System.out.println("*Savings Account*");
main.drawMainMenu();
}
else if (actNum == 3){
System.out.println("*Checkings Account*");
main5.checkingsAccount();
}
else if (actNum == 4){
BankMain.menu();
}
}
}
OriginalL'auteur Matt McCarthy | 2012-09-27
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser Scanner#hasNextInt() pour cela.
Si l'utilisateur n'entre pas valide alors vous pouvez dire bye bye à la prochaine fois, comme ci-dessous.
D'autre, vous pouvez afficher de message d'erreur et demander à l'utilisateur de réessayer pour le numéro de compte valide.
mis à jour le code source
OriginalL'auteur Amit Deshpande
Ah oui.. j'ai égaré que..
Il y a un mieux maintenant.. 🙂
Tre il y a Encore un problème, dans le reste vous avez besoin de faire un compte.next() de sorte qu'il ira sur next() de l'élément.
Oh oui.. nextInt() ne pas déplacer le pointeur à l'emplacement du caractère suivant... Merci pour la citation.. Vais le modifier.. Mon Cerveau en
rusted
.. :-\OriginalL'auteur Rohit Jain
je pense que l'on a accepté la réponse est correcte, mais nous devrions faire usage de java fonctionnalités comme la gestion des exceptions dans notre code
//si notre code devrait ressembler à ceci
mon plaisir bro
OriginalL'auteur Amar Magar
Le Scanner a une hasNextInt() fonction qui retourne true si le prochain jeton est un Entier. Donc, avant d'appeler
nextInt()
valider sihasNextInt()
est vrai. Si elle échoue, afficher un message à l'utilisateur lui demandant d'entrer un nombre entier. Remarque, L'Entier n'a pas nécessairement besoin de tomber dans votre plage, alors assurez-vous également d'avoir un finalelse
pour informer l'utilisateur que le numéro entré est invalide.Astuce: Utilisez Le Commutateur Cas.
OriginalL'auteur st0le
Vous pouvez utiliser
Scanner.hasNextInt()
ouInteger.parseInt()
.int
, votre analyser le code ne sera jamais appelé comme une exception sera levée ànextInt
premièremerci pour ça.j'ai édité maintenant
OriginalL'auteur PermGenError