Fragen für ja/Nein, zurück zu gehen, um die Schleife
Wie gehe ich zurück auf die versuchen Schleife, wenn der Benutzer Antworten, Y/y? Ich weiß, der code unten nicht Fragen, für den Benutzer wollen Sie es nochmals versuchen (J/N)?. Ich kann nur bufferedReader in dem moment.
import java.io.*;
public class Num10 {
public static void main(String[] args){
String in="";
int start=0, end=0, step=0;
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
try{
System.out.print("Input START value = ");
in=input.readLine();
start=Integer.parseInt(in);
System.out.print("Input END value = ");
in=input.readLine();
end=Integer.parseInt(in);
System.out.print("Input STEP value = ");
in=input.readLine();
step=Integer.parseInt(in);
}catch(IOException e){
System.out.println("Error!");
}
if(start>=end){
System.out.println("The starting number should be lesser than the ending number");
System.exit(0);
}else
if(step<=0){
System.out.println("The step number should always be greater than zero.");
System.exit(0);
}
for(start=start;start<=end;start=start+step){
System.out.println(start);
}
System.out.println("\nDo you want to try again (Y/N)?");
}
}
- Ein
try
block ist nicht eine Schleife.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einen
do ... while
Schleife wäre angemessen für diese.oder Sie könnten nur mit einem regulären
while
Schleife:Und für beide von diesen
askQuestion
ist eine weitere Methode, die den Anwender auffordert, eine Frage und zurücktrue
oderfalse
.verwenden
do{..... }while();
wie:
Wie gehe ich zurück zu den versuchen, die Schleife, wenn der Benutzer Antworten, Y/y?
Sie können nicht zurück, um
try{.....}
. Müssen Siestatt
public static void main(String[] args){}
und zurück zu gehen, verwenden Sie
main();
an Ihre gewünschte Stelle des Codes.try
nicht eine Schleife erstellen. Das ist das problem.Schleifen "gehe zurück" automatisch, bis etwas passiert, um das Ende der Schleife. Das macht Sie zu Schleifen.
Setzen Sie also eine tatsächliche Schleife um den try-block ein, und stellen Sie die Frage am Ende der Schleife, und brechen aus der Schleife, wenn es beantwortet wird mit N/n (oder was auch immer; Sie können selbst entscheiden, wie Sie damit umgehen wollen, wenn die Eingabe einige andere Müll). Die
do
-while
Schleife ist angemessen, weil es prüft, für seine exit-Bedingung am Ende, statt am Anfang (wiewhile
undfor
).Java hat eine Menge von Werkzeugen für so etwas. Diese sind bekannt als "Schleifen". Die Schleifen in Java sind die
while
,do ... while
,for
, undfor ... each
. Die while-Schleife ist die einfachste. Es sieht wie folgt aus:Im Grunde, wo ich "Zustand" legt man eine beliebige boolean-Wert. Ein boolean-Wert ist ein Wert, der entweder
true
oderfalse
, sonst nichts. In Java können Sie Variablen erstellen, die derboolean
geben, aber oft werden Sie nicht explizit erstellen Sie einen booleschen Wert.Stattdessen verwenden Sie bedingte Anweisungen. Zum Beispiel
x < y
,x == y
, undx >= y
sind alle "bedingte Anweisungen". Das bedeutet, Sie am Ende bewerten, in einen booleschen Wert. Also, in diesem code:Wo es heißt
x < y
, es ist eigentlich eine Bewertung intrue
hinter die kulissen. Boolesche Werte sind wichtig, und werden an vielen stellen eingesetzt, die in Java.Egal, zurück zum Thema loops, kommen wir auf der nächsten Schleife,
do ... while
. Es sieht wie folgt aus:do ... while
funktioniert genauso wiewhile
, aber es immer mindestens einmal ausgeführt, auch wenn die Bedingung istfalse
.for
undfor ... each
sind etwas komplizierter. Sie sind wirklich nur Verknüpfungen. Betrachten Sie den folgenden code:Hier, die Schleife läuft 10 mal, und
i
wird verfolgen, wie viele loops. Diefor
- Schleife tun können, die gleiche Sache, aber in einer prägnanten Weise:Dass code, der das gleiche tun wird, was das erste Tat, aber es verwendet eine
for
Schleife. Wie Sie sehen können, diefor
- Schleife hat drei Teile. In der ersten, können Sie eine variable deklarieren, in der zweiten, Sie setzen eine Bedingung, und in der Dritten, etwas, dass die Ausführung jeder iteration der Schleife.for
Schleifen werden Häufig verwendet, wenn der Iteration über arrays, aber möglicherweise haben Sie nicht gelernt, dass noch so ärgern Sie sich nicht.Den
for ... each
Schleife ist komplizierter als alle anderen, so, wenn Sie nicht verstehen, es nur noch, keine Sorge. Im Grunde ist es ein schneller Weg, um alle Elemente einer Liste, oder alles, was in den Collections-API. Zum Beispiel, sagen, Sie haben eine Liste von Zeichenfolgen, die Sie verwenden konnten, um alle Fäden in der Liste:Dass würde gehen durch jeder String in der Liste aus und drucken Sie es aus.
Irgendwie, zurück zu dem problem an der hand. Hier müssen wir wählten eine Schleife zu verwenden, und es scheint, dass das beste für die situation wäre eine einfache
while
Schleife. Nur so etwas tun:Hier verwenden wir zwei
while
Schleifen. Die erste umschließt den gesamten code, die überprüfung für einen boolean namenscondition
. Wir initialisiert haben estrue
, so dass die Schleifen werden immer mindestens einmal ausgeführt. Zweitens habe ich eine anderewhile
Schleife. Hier habe ichwhile (true)
, die laufen ewig. Allerdings können Sie "break" aus der Schleife mithilfe derbreak
Schlüsselwort. Der Grund, warum ich diese verwendet, ist der Benutzer hat die Möglichkeit der Eingabe etwas anderes als "y" oder "n". In diesem Fall, es sollte einfach Fragen Sie wieder. Wenn es bekommt, "Y", setzt escondition
zutrue
und bricht aus der Schleife (das ist technisch nicht notwendig, da der Zustand bereits gesetzt isttrue
). Wenn er "N" es wirdfalse
und bricht aus der Schleife. Da ist es jetztfalse
wird, wird die Schleife beendet und das Programm wird beendet.