Input/Output scanner wird in der while schleife übersprungen

dan1996

Aktives Mitglied
Hallo, bei meiner While Schleife wird die Eingabe für "wahre" beim 2. durchlauf der Schleife übersprungen und es geht direkt in die Eingabe der Anzahl der Wahre, weiß jemand warum es wahre = sc.nextLine(); überspringt und wo der Fehler ist ?

Die Ausgabe:

Bitte Wahre eingeben, beim beenden des Einkaufes, (Ende) eingeben:
Brot
Bitte Anzahl der Wahre eingeben:
3
Bitte Wahre eingeben, beim beenden des Einkaufes, (Ende) eingeben: //überspringt Eingabe der Wahre
Bitte Anzahl der Wahre eingeben:
2




Code:
Scanner sc = new Scanner(System.in);

        int anzahl;
        String wahre;
        boolean kauf = true;

        while(kauf){
            System.out.println("Bitte Wahre eingeben, beim beenden des Einkaufes, (Ende) eingeben: ");
            wahre = sc.nextLine();

            if(wahre.equals("Ende")){
                System.out.println("Vielen Dank für den Einkauf, ihr Beleg kommt");
                break;
            } 

            System.out.println("Bitte Anzahl der Wahre eingeben: ");
            anzahl = sc.nextInt();

           
        }
 

Robat

Top Contributor
Nach sc.nextInt() landet der Zeilenumbruch im Puffer. Beim nächsten Aufruf von sc.nextLine() wird dieser Zeilenumbruch aus dem Puffer gelesen, anstatt auf deine Eingabe zu warten.
Was du zB machen kannst ist nach sc.nextInt() direkt noch mal sc.nextLine() aufzurufen.
 

Neue Themen


Oben