Wie die Rückkehr zum Anfang der code? Vielleicht?
Ich bin extrem neu in die Programmierung mit Java und haben, was ich bin sicher, dass wird eine sehr einfache Lösung. Ich habe den folgenden code, und es funktioniert, aber ich Frage mich, wie ich das so ändern könnten, wenn der Benutzer Eingaben etwas anderes als ein int, es würde die Schleife zurück an die Spitze nach gibt es die Fehlermeldung, so würde es sich Fragen, für eine temp wieder. Vielen Dank im Voraus.
Scanner in = new Scanner(System.in);
//User input of temperature
System.out.print("Enter temperature in Celsius: ");
if (in.hasNextInt())
{
int temperature = in.nextInt();
//Now determine what state the water will be in, either ice, gas, or water.
if (temperature >=100)
{
System.out.print("Gas!");
}
else if ((temperature <100) && (temperature >0))
{
System.out.print("Water!");
}
else if (temperature <=0)
{
System.out.print("Ice!");
}
}
else
{
System.out.println("Error: Not an Integer");
System.out.print("Please enter temperature in Celsius: ");
}
InformationsquelleAutor DJ87 | 2012-02-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
verschieben Sie es in eine Methode
Deine Methode ist definitiv anspruchsvoller als die meinigen. +1.
Sie sind gleichwertig, aber dieser Weg ist wohl mehr lesbar; aber man könnte (und sollte eigentlich) genauso gut gesagt, die while-Schleife in einer neuen Methode
ps. die
readInput
sollte wirklichprivate
InformationsquelleAutor scibuff
Sieht es aus wie Sie Aussehen sollten in einem
while()
Schleife. Sie können verwenden Sie eine snippet -wie diese:Wo können Sie fügen Sie code zum konvertieren der Temperatur in dieser Schleife.
do ... while
geeignet ist, so brauchen Sie nicht zu schreibeninput = scanner.nextInt();
zweimalInformationsquelleAutor simchona
Was Sie suchen, ist die while-Schleife.
InformationsquelleAutor DejanLekic
Müssen Sie eine Schleife verwenden. Schauen Sie hier für eine Einführung:
http://www.leepoint.net/notes-java/flow/loops/loops.html
InformationsquelleAutor Marc
wickeln Sie Ihren code mit einer Schleife, die ich benutzen würde, während Sie(...) für diesen Zweck, Bedingung beenden wäre ein 'int' - Eingang.
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/while.html
Zur überprüfung von Benutzereingaben verwenden, zB. regexp so etwas wie dieses:
userInput.matches("[-+]?\d+(\.\d+)?");
InformationsquelleAutor Bela Vizer
Die einfachste Lösung, um Ihre Antwort zu stick, den code in eine unendliche "laufen" - Schleife.
Ausführen Schleifen oder dem main-loops, wie Sie öfters genannt werden, bieten eine konsistente Schleife, die die Benutzereingaben entgegennimmt und gibt feedback. Wenn Sie in multi-threading - /GUI-Programmierung, dies ist, wo Sie die meisten UI-code geht. Allerdings werden die meisten Projekt-basierten Umgebungen (Eclipse für Android apps, Xcode für iOS apps, etc.) komplexere und idiomatisch ausführen Schleifen als
while (true)
.Scanner in = new Scanner( System. in );
aus der Schleifewhoop; guter Ruf. tun wird.
Ich ging tatsächlich mit dieser Methode, da habe ich eine million Fehler, wenn ich versuchte, die erste (ich bin wahrscheinlich etwas falsch, wie ich es sagte, ich bin extrem neu). Ich fügte hinzu, eine Pause, nach der alle if/else if ' s und es funktioniert dort, aber wenn ich Schreibe, in Briefen zum Beispiel und es geht in die else-Anweisung, es non-stop-Schleifen, die sagen "Geben Sie die Temperatur in Celsius: Fehler: Keine Ganzzahl Bitte geben Sie die Temperatur in Celsius:". Also ich denke, jetzt bin ich versucht, herauszufinden, wie, um es von dem anderen zurück an die Spitze, und dort anhalten, warten auf eine weitere Benutzereingabe
InformationsquelleAutor Patrick Perini