Wie kann ich dafür sorgen dass der Nutzer (y oder n) eingibt?

1 Antwort

Um Strings zu vergleichen musst du .equals() anstatt == verwenden.

if (input.equals("y")) {

Hat dir IntelliJ eh markiert. Einfach mal mit der Maus über die markierten Stellen gehen, dann siehst du direkt, was falsch ist.

Ausserdem kannst du .nextLine() nicht bedenkenlos nach .nextInt() verwenden.
nextInt() hat nämlich die blöde Eigenschaft, dass es die Entertaste (welche man drückt um seine Eingabe zu bestätigen) nicht erfasst. Der Newline-Character bleibt einfach im Eingabepuffer, wodurch nextLine(), wenn es den Eingabepuffer dann ausliest, denkt, dass der Nutzer Enter gedrückt hätte. Deswegen wirst du garnicht erst nach einer Eingabe gefragt und nextLine() liefert direkt einen leeren String zurück.
Um das zu beheben, nextLine() einmal einfach so ausführen, damit der Newline-Character aus dem Puffer entfernt wird. Danach kannst du es wieder normal benutzen.

sc.nextLine();
input = sc.nextLine();
Woher ich das weiß:Hobby – Programmieren ist mein Hobby & Beruf