[JAVA] Boucle infinie du scanner jusqu'à l'entrée normale

Boucle infinie du scanner jusqu'à l'entrée normale

Examen de Dernière fois

Dernière fois a utilisé la syntaxe try-catch pour implémenter le traitement lorsqu'une classe d'exception était utilisée.

Cette fois, je vais expliquer comment boucler lorsque l'entrée est différente en utilisant l'instruction if, la syntaxe try-catch et l'instruction while en considérant tous les modèles d'entrée.

Prenons un exemple!

exemple

-Ouvre une valeur numérique uniquement lorsque l'entrée est une valeur entière positive, et retourne à l'entrée dans les autres cas.

console スクリーンショット 2020-05-30 17.43.38.png

Tout d'abord, veuillez noter que 0 n'est pas un entier positif. (Contenu des élèves du premier cycle du secondaire) Les sauts de ligne pour chaque boucle sont faits pour la lisibilité. J'ai essayé de faciliter le suivi du mouvement du code en sortant la déclaration de notification de traitement.

** Faites particulièrement attention à break; '' et continue; ''. ** ** L'explication détaillée du commentaire se trouve à l'arrière, veuillez donc le lire pour le moment même si vous ne comprenez pas (^^ ;;

code スクリーンショット 2020-05-30 17.43.54.png

Écran de la console (à nouveau) スクリーンショット 2020-05-30 17.43.38.png

Structure générale

Flux de programme (rappelez-vous que c'est fondamentalement dans une boucle infinie)

  1. Tout d'abord, affectez l'entrée standard à la variable de type int num.
  2. Si une exception (caractère ou petit nombre) se produit ici, le bloc catch est traité et l'instruction while passe à la boucle suivante. -> Aller à 1
  3. Si aucune exception ne se produit (entier positif ou négatif, 0), num est classé par l'instruction if.
  4. Si num est 0 ou un entier négatif, affichez un message et ignorez le traitement du bloc while sous `` `continue; -> Aller à 1
  5. Si num est un entier positif, il traite dans le bloc if et passe à la ligne suivante dans le bloc try.
  6. Lorsque le traitement normal est terminé, vous devez sortir de la boucle infinie, utilisez donc break; '' `` pour quitter la boucle infinie.
  7. Fermez la classe Scanner.

Vous disposez maintenant d'un programme qui divise tous les cas en entrée et vous demande de les saisir de nouveau jusqu'à ce que le traitement normal soit effectué.

À propos de la boucle infinie

Si une boucle infinie inattendue se produit pendant le programme, elle s'arrêtera avec Ctrl + c```, alors ne vous précipitez pas. Pour les utilisateurs de Mac, définissez la touche de sortie depuis l'écran Préférences> Général> Éditeur> Clés. Ci-dessous, le paramètre de touche de fin par défaut スクリーンショット 2020-05-30 14.52.40.png

Recommended Posts

Boucle infinie du scanner jusqu'à l'entrée normale
entrée de boucle du scanner java
StackOverflowError (boucle infinie)