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

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

Linda Hamilton
Release: 2024-12-02 02:12:09
Original
715 people have browsed it

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

NoSuchElementException with Java.Util.Scanner

The NoSuchElementException is thrown when the nextElement method of an enumeration is called and there are no more elements in the enumeration. In the given Java code, this exception is encountered when the Scanner class attempts to read the second integer from the user input.

The source code snippet you provided is intended to prompt the user for two integers and calculate their sum. However, it's possible that the user has only inputted one integer, leaving the scanner with no valid input for the nextInt() method.

To address this issue, you can incorporate a check to determine if the scanner has another integer available before attempting to read it. Here's an updated version of the 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
Copy after login

This updated code includes additional checks to validate if the user has entered an integer before reading it using the nextInt() method. This helps avoid the NoSuchElementException and ensures that the program behaves as expected, even if the user provides invalid or incomplete input.

The above is the detailed content of How Can I Prevent `NoSuchElementException` When Using `java.util.Scanner` to Read Multiple Integers?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template