break-Anweisung in der "if else" - java
Ich immer eine Fehlermeldung, if
ohne else
.
Versuchte ich else if
sowie
for (;;){
System.out.println("---> Your choice: ");
choice = input.nextInt();
if (choice==1)
playGame();
if (choice==2)
loadGame();
if (choice==3)
options();
if (choice==4)
credits();
if (choice==5)
System.out.println("End of Game\n Thank you for playing with us!");
break;
else
System.out.println("Not a valid choice!\n Please try again...\n");=[;'mm
}
auch wenn Sie eine bessere Idee, wie dieser code bitte zögern Sie nicht 🙂
Java ist nicht Python. Sie können nicht erwarten, die zwei Linien in der gleichen block, nur weil Sie die gleiche Einrückung haben...
Ich sehe xD danke!
Auch das wird das problem nicht lösen vollständig. Alle
Sollte es nicht: "else ohne if"?
Ich sehe xD danke!
Auch das wird das problem nicht lösen vollständig. Alle
if
Aussagen müssen verbunden werden mit else
.Sollte es nicht: "else ohne if"?
InformationsquelleAutor John | 2013-12-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Weil Ihre
else
ist nicht angebracht, zu nichts. Dieif
ohne Klammern umfasst nur die einzige Anweisung, die unmittelbar folgt.Nicht mit geschweiften Klammern ist im Allgemeinen angesehen als eine schlechte Praxis, weil es kann dazu führen, die genauen Probleme, denen Sie begegnen.
Zusätzlich mit einem
switch
hier mehr Sinn machen würde.Beachten Sie, dass anstelle einer unendlichen
for
Schleife habe ich einewhile(boolean)
, so dass es einfach zu beenden die Schleife. Ein weiterer Ansatz wäre die Verwendung von break mit Etiketten.break;
in einem switch wird nur brechen aus dem Schalter.Huch - guter Punkt. Bearbeiten
InformationsquelleAutor Brian Roach
Den "Pause" - Befehl funktioniert nicht innerhalb einer "if" - Anweisung.
Wenn Sie entfernen die "Pause" - Befehl aus dem code und dann den code zu testen, sollten Sie feststellen, dass der code funktioniert genau das gleiche, ohne eine "Pause" - Befehl wie mit einer.
"Pause" ist speziell für den Einsatz in Schleifen (for, while, do-while, verstärkt für und switch).
Die 'Pause' - Befehl funktioniert nicht in einem 'if' - Anweisung, wenn, wenn-Anweisung nicht innerhalb einer Kontroll-Struktur-loop/switch. Ich denke, das ist, wo die Verwirrung liegt? Wenn die leichter zu verstehen, stellen Sie sich vor, ein 'continue' - Anweisung in einer if-Anweisung.
InformationsquelleAutor Alan J. Robinson
Das Problem ist, dass Sie versuchen, mehrere Anweisungen in eine
if
ohne Verwendung{}
.Was Sie derzeit haben, wird interpretiert wie:
Sie wirklich wollen:
Auch, als Farce hat erklärt, es wäre besser, verwenden
else if
für alle Bedingungen, stattif
denn wennchoice==1
ist, wird es noch durch gehen, und prüfen Sie, obchoice==5
, die fehlschlagen würde, und es wird immer noch gehen Sie in Ihrem else-block.Eine elegantere Lösung wäre die Verwendung eines
switch
- Anweisung. Allerdingsbreak
nur bricht aus dem innersten "block", es sei denn, Sie verwenden die Etiketten. Sie wollen So zu Kennzeichnen, Schleife und brechen aus, wenn der Fall ist 5:Statt der Kennzeichnung der Schleife, könnte man auch ein flag zu sagen, die Schleife zu stoppen.
InformationsquelleAutor clcto