tobmes
Goto Top

Tastatureingabe

Hi Experten,
bin leider kein guter Programmieren und mit Java kenne ich mich auch nicht sonderlich aus. Habe da jetzt ein kleines Problem. Ich möchte gerne einen Benutzernamen vom Benutzer abfragen und diesen dann speichern, doch leider wird genau das im Programm immer übersprungen. Vorher gibt der Benutzer die Anzahl der Spieler ein, das funktioniert wunderbar. Zum einlesen von der Tastatur verwende ich die Scanner-Klasse.

Hier mal mein Code:
public void place() {
        String name = null;
        System.out.println("Bitte die Anzahl der Spieler eingeben: ");  
        if(s.hasNextInt()) {
            countOfPlayers = s.nextInt();
            
        }else{
            System.err.println("Ungültige Eingabe");  
            s.next();
        }
        
//        System.out.println("Bitte Spielername eingeben: "); 
//        s.nextLine();
//       countOfPlayers = 2;
//        System.out.println("Bitte die Anzahl der Tipps pro Spieler eingben: "); 
//        countOfTip = s.nextInt();        
        //countOfTip = 5;
        //int playerTip = new int[countOfTip];
        for (int cp = 0; cp < countOfPlayers; cp++) {            
            if(!s.hasNextLine()) {
                System.out.println("Bitte Spielernamen eingeben");  
                name = s.nextLine();
            }else{
                System.err.println("Fehler");  
                s.next();
            }           
            
            player.setName(name);
            System.err.println("NAME= " + name);  
            //System.out.println(player.getName());

            System.out.println("Bitte 5 Zahlen eingeben");  

            for (int i = 0; i < 5; i++) {
                while (!s.hasNextInt()) {
                    System.err.println("Das ist keine Zahl, NOOB!\n");  
                    s.next();
                }
                //System.out.println("Tipp " + i+1 + "/" + countOfTip); 
                int number = s.nextInt();
                playerTip[i] = number;

            }
            player.setPlayerTip(playerTip);
            //pl.add(player);
            pl.add(player);
        }
        //s.close();
    }

Verstehe leider nicht warum er da nicht bei name = s.nextline() stehen bleibt. Kann mir dabei jemand helfen?

Danke schon mal
Gruß

Content-ID: 320788

Url: https://administrator.de/contentid/320788

Ausgedruckt am: 22.11.2024 um 22:11 Uhr

J-N-S.K-N-R
J-N-S.K-N-R 14.11.2016 um 07:10:11 Uhr
Goto Top
Der Fehler liegt meiner Ansicht nach daran, das du Name (also name = s.nextLine(); ) immer überschreibst in der Schleife.

Versuch mal die Spielernamen in einem Array zu speichern


mfG Jonas