Programm auf Enter warten lassen?
folgendes Problem
das Programm stellt mir die erste frage und wartet auf meine Eingabe + Enter
sobald ich dann Enter drücke stellt es mir gleich die nächsten 2 fragen, ich will aber das es mir eine nach der anderen stellt und zum Schluss eben die .infoAusgeben Methode.
Wie krieg ich das also hin das das Programm mir die anderen 2 fragen stellt und jeweils auf die Eingabe wartet
3 Antworten
Mach einmal
nextLine();
vor der Frage "Welche Farbe soll dein Traumhaus haben?".
Das Problem kommt daher, dass du nach nextInt() nextLine() hernimmst.
Bei nextInt() gibst du ja eine Zahl ein und drückst dann Enter. nextInt() 'frisst' nur die Zahl auf, nicht aber das Enter-Zeichen (bzw. den Line-Feed) danach. (Das gilt übrigens für alle nextDatatype(), also auch nextDouble() oder sowas.). Wenn du dann nextLine() aufrufst sieht der Scanner, dass da noch ein Enter-Zeichen ist, und 'frisst' das auf. Daher wartet er da auf keinen Input - Er denkt er hat schon einen bekommen, nämlich das übrige Enter-Zeichen.
Workaround ist es, wie gesagt, einmal nextLine(); aufzurufen, sodass er das übrige Enter-Zeichen vom nextInt() 'frisst'.
Wenn Du Zeile 11 schaust, ist input rot unterstrichen:
Bei Zeile 11 steht das Warndreieck in gelb, was heißt " not in use"
ich würde schreiben :
Scanner scanner = new Scanner(System.in) ;
System.out.........
String farbeChange = scanner.nextLine();
Oh sehe du verwendest ihn schon. Erläuter mal genauer dann dein problem inwiefern er nicht wartet?
Erste Frage mit den Zimmer (Programm wartet, ich gebe 5 ein)
dann kommen gleich die 2 nächsten
es soll mir die aber nacheinander stellen also
Farbe ( warten auf eingabe) dann
das extra (warten auf eingabe) und dann
die infoAusgeben Methode (die hab ich in ner anderen klasse deklariert)
https://stackoverflow.com/questions/23450524/java-scanner-doesnt-wait-for-user-input
nextInt lässt den \n noch stehen, daher passiert das. Daher musst du einmal nextLine noch schreiben, damit das \n (enter) verschwindet
hat geklappt vielen dank