Hallo ich hab folgendes Problem
Die Methode nextInt() der Klasse java.util.Scanner verhält sich nicht so wie ich dies erwarte
Kurzer programm Ausschnitt in der mein Problem zusammen gefasst wird.
Wenn man zuerst 2 eingibt und danach eine andere Zahl wird automatisch bei neuem Eintritt in die Schleife ein NumberFormatException geworfen warum.
ein Weiteres Programm wo der Fehler sogar zu einer dauerschleife führt ist dieses.
Wenn man hier keine Zahl eingibt ist das programm in einer Dauerschleife
Warum?
Danke für die Antwort
LG
AmunRa
Die Methode nextInt() der Klasse java.util.Scanner verhält sich nicht so wie ich dies erwarte
Kurzer programm Ausschnitt in der mein Problem zusammen gefasst wird.
Code:
import java.util.*;
class test{
public static void main(String [] args){
Scanner sc= new Scanner(System.in);
while (true){
int i=0;
System.out.println("Choose 1,2,3");
String s = sc.nextLine();
try{
i = Integer.parseInt(s);
}catch(Exception e){
System.out.println(e+"Failure");
}
if (i==1){
System.out.println("nerf");
}
if (i==2){
System.out.println("Please enter age");
int j= sc.nextInt();
System.out.println("2");
}
if (i==3){
System.out.println("Exit");
System.exit(0);
}
}
}
}
Wenn man zuerst 2 eingibt und danach eine andere Zahl wird automatisch bei neuem Eintritt in die Schleife ein NumberFormatException geworfen warum.
ein Weiteres Programm wo der Fehler sogar zu einer dauerschleife führt ist dieses.
Wenn man hier keine Zahl eingibt ist das programm in einer Dauerschleife
Code:
import java.util.*;
class test{
public static void main(String [] args){
Scanner sc= new Scanner(System.in);
boolean corr=false;
do{
corr=false;
System.out.println("Geben sie ihr alter ein");
try{
sc.nextInt();
}catch(InputMismatchException e){
System.out.println(e+"Bitte nur Zahlen eingeben");
corr=true;
}
}while (corr);
}
}
Warum?
Danke für die Antwort
LG
AmunRa