Schleifendurchlauf ab 2. Durchlauf klappt nicht

idaho369

Mitglied
Hallo liebe Mitleser,

ich habe folgendes kleines Programm (matchen von Zahlenraten und Zufallszahlziehen). Soweit so gut. Ich moechte es mit nur einer Schleife machen. Der erste Durchlauf klappt einwandfrei. Wenn ich nun aber den User per n/y Eingabe fragen moechte (scannermethode), ob er nocheinmal spielen moechte, sieht es so aus, als koenne das y nicht eingelesen werden. Wenn ich es auskommentiere und durch"y" ersetze, klappt es einwandfrei. Habt Ihr eine Idee.
Java:
import java.util.Scanner;
public class Book_3_10
{
    public static void main(String args[])
    {
        final int MAX = 5; // number between 1 and 100 inclusive
        int target, count = 1, guess;
        String again= "y";
        Scanner scan = new Scanner(System.in);

        //System.out.println("Want to play (y/n)?: ");
        //again = scan.nextLine();    

        while (again.equalsIgnoreCase("y"))
        {
            System.out.println();      
            target = (int) (Math.random()*MAX) +1;
         
            System.out.println ("Enter your guess (0 to quit): ");
            guess = scan.nextInt();
         
            if (guess > 0)
            {
                if (guess == target)
                    System.out.println("Right! Guesses: " +count);
                else if (guess < target)
                    System.out.println ("Your guess was too LOW");
                else
                    System.out.println("Your guess wass too HIGH");
            }        
            count = count + 1;
            System.out.println();

            System.out.print("Play again (y/n)?: " );
            again = scan.nextLine();      
            //again = "y";
        }

    }
}

Viele Gruesse
 
Zuletzt bearbeitet von einem Moderator:

JStein52

Top Contributor
Ändere das:
Code:
System.out.println ("Enter your guess (0 to quit): ");
guess = scan.nextInt();

mal auf:

Code:
System.out.println ("Enter your guess (0 to quit): ");
String line = scan.nextLine();
guess = Integer.parseInt(line);
 

Robat

Top Contributor
Das ist ein altbekannter Fehler.

Java:
scan.nextInt();

liest wirklich nur die Zahl ein. Am Ende steht aber noch ein \n (für die neue Zeile). Das kommt dann (wegen des Bufferoverflows) eben beim nächsten scan.nextLine(); raus.
Somit steht jedes mal wenn du die Abfrage mit dem y/n ausführst ein \n drin --> es kommt zum Abbruch weil es eben != y ist.

Das kannst du beheben, in dem du einfach vor deiner y/n Abfrage einfach noch mal ein scan.nextLine() einbaust. Am besten vor der Ausgabe: "Play again.."

Alternative - wahrscheinlich sogar besser - deinen int mit nextLine einlesen und mit Integer.parseInt konvertieren

PS: @JStein52 war schneller :D

Gruß
 
X

Xyz1

Gast
Die Begründung steht doch auf StackOverflow ... kannst du kein Englisch? (neutrale, nicht wertende Aussage :) )
 

Robat

Top Contributor
kannst du kein Englisch?
Doch kann Ich :)

Dachte nur nicht dass der Link deine Begründung ist.. hätte eher gedacht, dass es ergänzend für den TE ist, weil der Link für mich (nur meine Meinung ) keine Begründung ist, den Scanner nicht zu benutzen. Wenn man weiß dass man eben nach den ganzen nextFoo Methoden ein nextLine aufrufen muss (bzw gleich mit next Line und dann umwandeln arbeiten) dann finde Ich, dass der Scanner eine gute Wahl ist.
Eigentliche Intention war es herauszufinden ob du einen Grund kennst den Ich nicht kenne :p
 

InfectedBytes

Top Contributor
ansonsten kann man sich auch den skip anpassen, dann muss man nicht immer nextLine danach aufrufen. z.B. sowas in dieser Art: scanner.skip("[\r\n]+")
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Textsurfer Erste Schritte Ist es der erste Schleifendurchlauf? Java Basics - Anfänger-Themen 4
A Mehrere Methoden in Schleifendurchlauf Java Basics - Anfänger-Themen 7
G Zeichen Pro schleifendurchlauf hinzufügen Java Basics - Anfänger-Themen 7
W "Kein korrekter Schleifendurchlauf" Java Basics - Anfänger-Themen 3
G Wie ändere ich eine Variable in jedem Schleifendurchlauf? Java Basics - Anfänger-Themen 15
K Warum wird mir hier nach dem ersten Durchlauf zwei mal "welchen Datentyp wollen sie übergeben?" ausgegeben ? Java Basics - Anfänger-Themen 1
CptK For-Schleife in Thread nach jedem Durchlauf pausieren Java Basics - Anfänger-Themen 35
C Schleifen Durchlauf Java Basics - Anfänger-Themen 7
G Input/Output Schleifen Durchlauf Java Basics - Anfänger-Themen 5
O Rekursiver Durchlauf verschachtelter Elemente Java Basics - Anfänger-Themen 1
O Iterator - Durchlauf "einschränken" bzw. steuern&q Java Basics - Anfänger-Themen 2
L Durchlauf einer Matrix mit foreach Java Basics - Anfänger-Themen 7
T Durchlauf einer for-Schleife unterbrechen - wie ? Java Basics - Anfänger-Themen 11
M Verkettete Liste (schritt für schritt durchlauf) Java Basics - Anfänger-Themen 5
N Problem mit Schleifen-Durchlauf Java Basics - Anfänger-Themen 2
T Methode soll etwas ausrechnen und zurückgeben (klappt nd) hat wer eine Idee? Java Basics - Anfänger-Themen 11
Darkherobrine9 Import klappt nicht Java Basics - Anfänger-Themen 7
H Cast von Float nach String klappt nicht Java Basics - Anfänger-Themen 12
TeacherMrSSimon Schachspiel, Werte in Figur eintragen klappt nicht Java Basics - Anfänger-Themen 23
HolyFUT Input/Output Leerzeichen aus String entfernen - klappt nicht! Java Basics - Anfänger-Themen 13
F jsoup einloggen klappt nicht Java Basics - Anfänger-Themen 10
K In andere Zahlensysteme umwandeln, wann klappt immer der Trick mit log? Java Basics - Anfänger-Themen 6
nbergmann Umgebungsvariablen einstellen unter Windows 7 klappt nicht Java Basics - Anfänger-Themen 2
C Erste Schritte Insert Into klappt nicht Java Basics - Anfänger-Themen 6
O Klappt nicht: Ein Panel neu zeichnen Java Basics - Anfänger-Themen 3
L Resourcen laden klappt nicht Java Basics - Anfänger-Themen 2
L Variablen Einheiten umrechen klappt nicht Java Basics - Anfänger-Themen 16
J Objecte in TreeSet einfügen klappt nicht Java Basics - Anfänger-Themen 5
J Datei auslesen klappt nicht Java Basics - Anfänger-Themen 4
K Methoden Pause drücken klappt nur jedes 2. Mal Java Basics - Anfänger-Themen 6
S UserPref und Java Application klappt immer nicht. Java Basics - Anfänger-Themen 2
P Shape Zeichnen klappt nicht - einlesen der Breite/Höhe schon Java Basics - Anfänger-Themen 1
S clip.loop(Clip.LOOP_CONTINUOUSLY); stoppen klappt nicht! Java Basics - Anfänger-Themen 11
Z Lotto-Programm Wieso klappt das? Java Basics - Anfänger-Themen 8
J Erste Schritte Zweithöchster Wert eines Arrays herausfinden - warum klappt mein Code nicht? Java Basics - Anfänger-Themen 3
D Telefon programmieren klappt nicht. Java Basics - Anfänger-Themen 5
VfL_Freak Tastaturabfrage auf '@' klappt nicht :-( Java Basics - Anfänger-Themen 1
M Image Download klappt nicht mehr Java Basics - Anfänger-Themen 4
B Erste Schritte Vererbung klappt nicht Java Basics - Anfänger-Themen 24
M zufälliges Setzen von Schiffen in while klappt nicht immer Java Basics - Anfänger-Themen 3
S Date parsen klappt nicht richtig Java Basics - Anfänger-Themen 3
K RGB Wert Heller machen (Dunkler machen klappt) Java Basics - Anfänger-Themen 2
K Einlesen einer txt von BufferedReader klappt nicht wie gewünscht Java Basics - Anfänger-Themen 12
D Rekursiv Kombinationen ausgeben klappt nur bei einer Wiederholung Java Basics - Anfänger-Themen 4
H Runden klappt nicht Java Basics - Anfänger-Themen 10
S Dateien/LinkedList/StringBuffer - SOrtierung klappt nicht so ganz Java Basics - Anfänger-Themen 2
K CompareTo zwei mal benutzen klappt nicht. Java Basics - Anfänger-Themen 2
T Sortieren/Suche klappt nicht ganz (String Array) Java Basics - Anfänger-Themen 2
J Erste Schritte Bin ein Programm am schreiben klappt aber nicht und weis nicht warum Java Basics - Anfänger-Themen 20
F Dateien lesen klappt nicht Java Basics - Anfänger-Themen 2
Kenan89 Export klappt nicht Java Basics - Anfänger-Themen 2
K Serialisierung: speichern und auslesen, auslesen klappt nicht Java Basics - Anfänger-Themen 14
M Dividieren bei Grafischem Taschenrechner klappt nicht Java Basics - Anfänger-Themen 2
J Einem String-Array in einer for-Schleife Strings zuweisen - Klappt nicht in einer for-Schleife Java Basics - Anfänger-Themen 5
K Frame öffnen klappt nicht?! Java Basics - Anfänger-Themen 36
C Methoden Negativer Wert klappt nicht Java Basics - Anfänger-Themen 4
M Datei löschen, klappt nicht Java Basics - Anfänger-Themen 3
J Compiler-Fehler Eclipse .jar Export klappt nicht. Java Basics - Anfänger-Themen 17
A Oracle Verbindungsaufbau klappt nicht Java Basics - Anfänger-Themen 7
GianaSisters Erste Schritte Datei umbennen bzw verschieben klappt nicht Java Basics - Anfänger-Themen 6
Z Speichern in eine .txt klappt.. fast Java Basics - Anfänger-Themen 23
T pattern klappt nicht so Java Basics - Anfänger-Themen 6
U Automatenprüfung in Java implementieren — String Vergleich klappt nicht Java Basics - Anfänger-Themen 40
K Klassenumbenennung klappt nicht Java Basics - Anfänger-Themen 11
M Synchronized klappt nicht Java Basics - Anfänger-Themen 11
I .csv-Datei einlesen klappt aber kann nicht in String geschrieben werden!?!?! Java Basics - Anfänger-Themen 11
N Serialization, Laden klappt nicht wenn die Klasse geändert wurde Java Basics - Anfänger-Themen 3
D Jar klappt nicht trotz main Methode Java Basics - Anfänger-Themen 19
M Will Sudokus basteln - klappt net Java Basics - Anfänger-Themen 5
R fireTableDataChanged klappt nicht Java Basics - Anfänger-Themen 7
M methoden aufruf klappt nicht Java Basics - Anfänger-Themen 6
T Override klappt nochmal wie? Java Basics - Anfänger-Themen 3
I 1 Frame und mehrere Panels klappt nicht Java Basics - Anfänger-Themen 4
C SELECT klappt INSERT klappt nicht!!!??? Java Basics - Anfänger-Themen 3
Luk10 Aufrufen klappt nicht! Java Basics - Anfänger-Themen 7
A Quicksort, #Vergleiche zählen klappt nicht Java Basics - Anfänger-Themen 3
raptorrs Schreiben in Properties-File klappt nicht Java Basics - Anfänger-Themen 6
T JComboBox klappt nur ein- bis zweimal auf Java Basics - Anfänger-Themen 30
T Polymorphie:Überschreiben der Methode klappt nicht Java Basics - Anfänger-Themen 4
Gonzalez Eingabe des Benutzers mittels readLine()-Methode. Klappt in meinem Beispiel nicht! Java Basics - Anfänger-Themen 7
C .java in .class klappt nicht Java Basics - Anfänger-Themen 16
J Datenbankverbindung klappt doch nicht? IBM DB2 Java Basics - Anfänger-Themen 2
O JPanel einbinden klappt nicht Java Basics - Anfänger-Themen 5
R Fehlersuche - KeyListener, KeyAdaper - Nichts Klappt! Java Basics - Anfänger-Themen 2
B Strings aus Array einlesen klappt nicht Java Basics - Anfänger-Themen 5
J reverse array, klappt nicht ? Java Basics - Anfänger-Themen 3
L Leider klappt bei mir ein Befehl nicht Java Basics - Anfänger-Themen 4
G Unterverzeichnisse anlegen klappt nicht Java Basics - Anfänger-Themen 4
D Ausgabe klappt nicht Java Basics - Anfänger-Themen 9
1 JList Problem : Synchronisation mit Vector klappt nicht :( Java Basics - Anfänger-Themen 6
G EventHandling klappt nicht Java Basics - Anfänger-Themen 8
G JFreeChart und das Update(was nicht klappt). Java Basics - Anfänger-Themen 3
S Schleife klappt nicht Java Basics - Anfänger-Themen 5
G Vergleich klappt nicht Java Basics - Anfänger-Themen 3
J jar erstellen. Es klappt einfach nicht Java Basics - Anfänger-Themen 14
G JDK Installation klappt auf Vista nicht Java Basics - Anfänger-Themen 4
H import java.io.* klappt nich Java Basics - Anfänger-Themen 12
G Icon einfügen klappt nicht Java Basics - Anfänger-Themen 3
M String in textarea übernehmen klappt nicht Java Basics - Anfänger-Themen 13
M Insert into klappt nicht? Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben