Maison >Java >javaDidacticiel >Comment gérer gracieusement les entrées entières invalides avec le scanner Java ?
Comment gérer les entrées non valides à l'aide du scanner
Lors de l'utilisation du scanner pour les entrées utilisateur, la gestion des entrées non valides, telles que les caractères non numériques, est crucial pour la robustesse du programme. Explorons une solution pour résoudre ce problème.
Considérez l'extrait de code suivant :
Scanner kb = new Scanner(System.in); int num1; int num2 = 0; System.out.print("Enter number 1: "); num1 = kb.nextInt(); while (num2 < num1) { System.out.print("Enter number 2: "); num2 = kb.nextInt(); }
Ce code vise à obtenir deux entiers de l'utilisateur, en garantissant que le deuxième nombre (num2) est supérieur au premier (num1). Cependant, il présente deux limitations :
Pour résoudre ces problèmes, nous pouvons exploiter la Scanner.hasNextInt(), qui détermine si le jeton suivant dans l'entrée peut être interprété comme un entier.
L'extrait de code suivant intègre ces améliorations :
Scanner sc = new Scanner(System.in); System.out.print("Enter number 1: "); while (!sc.hasNextInt()) sc.next(); int num1 = sc.nextInt(); int num2; System.out.print("Enter number 2: "); do { while (!sc.hasNextInt()) sc.next(); num2 = sc.nextInt(); } while (num2 < num1); System.out.println(num1 + " " + num2);
En vérifiant la validité saisie en utilisant hasNextInt() et en ignorant les caractères non valides, le programme gère les entrées non numériques avec élégance. De plus, la boucle do-while garantit que le deuxième nombre est supérieur au premier, empêchant la boucle de continuer après l'obtention d'une entrée valide.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!