Wie eine Schleife in Java machen?

... komplette Frage anzeigen

3 Antworten

Du kannst eine While-Schleife nutzen, aber musst dafür die Fehlerbehandlung stärker präzisieren. Denn so wird immer wenn kein Input da ist eine Fehlermeldung geschmissen.

Der Scanner wirft drei Exceptions:

  • NoSuchElementException - Kein (ungelesener) Input vorhanden.
  • InputMismatchException - Kein passender Input (kein Int oder zu groß)
  • IllegalStateException - Scanner ist geschlossen.

Die erste kannst du fangen und ignorieren. Das ist kein Zustand.

Die zweite kannst du fangen und solltest eine Fehlermeldung ausgeben, das es keine gültige Eingabe ist.

Die dritte ist auf jeden Fall ein Fehler solltest du den Scanner nicht bewusst geschlossen haben.

Du kannst dir die ersten zwei Exceptions sparen wenn du mit der Methode Scanner.hasNextInt zunächst prüfst ob eine gültige Eingabe vorhanden ist. Die Rückgabe ist true wenn eine gültige Eingabe vorhanden ist.

Für die Prüfung ob der Wert passend ist kannst du eine Exception schmeißen oder eine einfache if-Prüfung vornehmen.

Antwort bewerten Vielen Dank für Deine Bewertung

Du könntest eine while-Schleife benutzen.

While(antwort > 2)
{
            Sytstem.out.println("Nur 1 oder 2!");
}

In diese Schleife kannst du dann erneut die Abfrage nach der Variable packen. Dann wird das Programm dies so oft wiederholen, bis die Richtige Zahl eingegeben wurde.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Sheyn
12.04.2016, 11:19

while (antwort > 2 )
{
try
{
antwort = scan.nextInt();
}

catch(Exception e)
{
System.out.println("Es ist ein Fehler aufgetreten");
}

finally
{
if (antwort == 1)
{
System.out.println("Sie haben die Möglichkeit, zwischen zwei Zahlen zu wählen.");
System.out.println("Eine der beiden Zahlen ist die richtige Antwort.");
System.out.println("Ihre Gewinnchance liegt bei 50%.");
System.out.println("Sollten sie eine richtige Antwort liefern, bekommen Sie 1 Punkt.");
System.out.println("Bei der falschen Antwort gehen alle Ihre Punkte verloren.");
System.out.println("Sie haben danach die Auswahl, das Spiel neuzustarten oder zu beenden.");
System.out.println("Viel Glück!");
spiel=1;
}
}
if (antwort == 2)
{
spiel=1;
}

if(antwort > 2)
{
System.out.println("Nur 1 oder 2!");

}
}

So?

Wenn ich das so habe kann ich nichts mehr eingeben:/

0

In VBA würde ich es so schreiben:

Do
Erg=InputBox (Bitte Zahl eingeben")
If Erg ="1" Or Erg ="2" Then Exit Do
Loop

So wird immer wiederholt wenn etwas anderes eingegeben wird.

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?