Maison >Java >javaDidacticiel >Comment puis-je empêcher « NoSuchElementException » lors de l'utilisation de « java.util.Scanner » pour lire plusieurs entiers ?

Comment puis-je empêcher « NoSuchElementException » lors de l'utilisation de « java.util.Scanner » pour lire plusieurs entiers ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-02 02:12:09649parcourir

How Can I Prevent `NoSuchElementException` When Using `java.util.Scanner` to Read Multiple Integers?

NoSuchElementException avec Java.Util.Scanner

La NoSuchElementException est levée lorsque la méthode nextElement d'une énumération est appelée et qu'il n'y a plus d'éléments dans le dénombrement. Dans le code Java donné, cette exception se produit lorsque la classe Scanner tente de lire le deuxième entier à partir de l'entrée de l'utilisateur.

L'extrait de code source que vous avez fourni est destiné à demander à l'utilisateur deux entiers et à calculer leur somme. . Cependant, il est possible que l'utilisateur n'ait saisi qu'un seul entier, laissant le scanner sans entrée valide pour la méthode nextInt().

Pour résoudre ce problème, vous pouvez intégrer une vérification pour déterminer si le scanner a un autre entier. entier disponible avant de tenter de le lire. Voici une version mise à jour du code :

import java.util.Scanner;

public class Addition {
  public static void main(String[] args) {
    // creates a scanner to obtain input from a command window

    Scanner input = new Scanner(System.in);

    int number1; // first number to add
    int number2; // second number to add
    int sum; // sum of 1 & 2

    System.out.print("Enter First Integer: "); // prompt
    if (input.hasNextInt()) {
      number1 = input.nextInt();
    } else {
      // Handle the case where no number is entered
      number1 = 0;
    }

    System.out.print("Enter Second Integer: "); // prompt 2
    if (input.hasNextInt()) {
      number2 = input.nextInt();
    } else {
      // Handle the case where no number is entered
      number2 = 0;
    }

    sum = number1 + number2; // addition takes place, then stores the total of the two numbers in sum

    System.out.printf("Sum is %d\n", sum); // displays the sum on screen
  } // end method main
} // end class Addition

Ce code mis à jour inclut des vérifications supplémentaires pour valider si l'utilisateur a saisi un entier avant de le lire à l'aide de la méthode nextInt(). Cela permet d'éviter l'exception NoSuchElementException et garantit que le programme se comporte comme prévu, même si l'utilisateur fournit une entrée invalide ou incomplète.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn