Hallo zusammen,
bei folgendem Code funktioniert der Scanner das erste Mal immer einwandfrei, ab dem zweiten Schleifendurchlauf funktioniert es allerdings nicht mehr und es wird eine InputMismatchException ( bei scan.nextInt()) oder eine NumberFormatException ( bei Integer.parseInt(...)) geworfen. Bei der NumberFormatException wird sogar die richtige Zahl in der Fehlermeldung genannt.
Ich habe schon versucht jeden Schleifendurchlauf den Scanner zu schließen und einen neuen zu nutzen, scan.reset() hat ebenfalls nichts gebracht.
Ich hoffe ihr könnt mir weiterhelfen, auf jeden Fall vielen Dank.
LG eno_x3
bei folgendem Code funktioniert der Scanner das erste Mal immer einwandfrei, ab dem zweiten Schleifendurchlauf funktioniert es allerdings nicht mehr und es wird eine InputMismatchException ( bei scan.nextInt()) oder eine NumberFormatException ( bei Integer.parseInt(...)) geworfen. Bei der NumberFormatException wird sogar die richtige Zahl in der Fehlermeldung genannt.
Ich habe schon versucht jeden Schleifendurchlauf den Scanner zu schließen und einen neuen zu nutzen, scan.reset() hat ebenfalls nichts gebracht.
Code:
Zahl: 5
Ungerade Zahl!
Zahl: 5
Exception in thread "main" java.lang.NumberFormatException: For input string: "5"
at java.base/java.lang.NumberFormatException.forInputString(Unknown Source)
at java.base/java.lang.Integer.parseInt(Unknown Source)
at java.base/java.lang.Integer.parseInt(Unknown Source)
at Main.main(Main.java:9)
Java:
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
int zahl;
Scanner scan = new Scanner(System.in);
while(true) {
System.out.print("Zahl: ");
zahl = Integer.parseInt(scan.nextLine());//scan.nextInt();
try {
test(zahl);
break;
}
catch(IllegalArgumentException e) {
System.out.println(e.getMessage());
}
}
scan.close();
System.out.println(zahl/2);
}
public static void test(int zahl) {
if (zahl%2 != 0) {
throw new IllegalArgumentException("Ungerade Zahl!");
}
}
}
Ich hoffe ihr könnt mir weiterhelfen, auf jeden Fall vielen Dank.
LG eno_x3