Question

My code is getting this error:

Skriv din alder herunder og tryk enter:
Exception in thread "main" java.util.NoSuchElementException
    at java.util.Scanner.throwFor(Scanner.java:907)
    at java.util.Scanner.next(Scanner.java:1530)
    at java.util.Scanner.nextInt(Scanner.java:2160)
    at java.util.Scanner.nextInt(Scanner.java:2119)
    at Tasteturindtastning.main(Tasteturindtastning.java:20)
[Finished in 1.7s with exit code 1]

And my code is:

// Starter java som man plejer, læs i HejVerden.java

public class Tasteturindtastning
{
    public static void main(String[] arg)
    {
        /* Jeg skal nu angive en variable, men jeg kan ikke bestemme denne variable
         * Da jeg ønsker at indtastningen fra dette tastetur skal være variablen.
         * I stedet for int og double bruger jeg så java.util.Scanner, som aflæser
         * brugerens indtastninger.
         */

        java.util.Scanner tastetur = new java.util.Scanner(System.in);

        // Printer en opgave/spørgsmål til brugeren

        System.out.println("Skriv din alder herunder og tryk enter:");

        int alder; // Angiver et variablenavn
        alder = tastetur.nextInt(); // Angiver variablen med værdien fra indtastningen

        /* Herunder gør jeg brug af et if statement der tjekker værdien for
         * variablen alder, og ser om den er lig med eller højere end 18, og hvis
         * dette er tilfældet, så udprinter den en sætning
         */

        if (alder >= 18) System.out.println("Du er myndig, da du er " + alder + " år gammel"); // Printes hvis han er 18 eller ældre

    }
}

What is wrong?

Was it helpful?

Solution

NoSuchElementException is thrown by the scanner when there are no more elements to read from the scanner.you will have to check if any elements exists in the scanner before retrieving the Integers using Scanner.hsNextInt()

       while(tastetur.hasnextInt()){
        alder = tastetur.nextInt(); 
        }
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top