Demandez oui/non pour revenir à la boucle
Comment puis-je revenir à la essayer boucle si l'utilisateur répond à Y/y? Je sais que le code ci-dessous n'est pas demander de l'utilisateur voulez-vous essayer à nouveau (O/N)?. Je ne peux utiliser bufferedReader pour le 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)?");
}
}
- Un
try
bloc est pas une boucle.
Vous devez vous connecter pour publier un commentaire.
Un
do ... while
boucle serait approprié pour cela.ou vous pouvez simplement utiliser un
while
boucle:Et pour ces deux,
askQuestion
est une autre méthode qui demande à l'utilisateur une question et renvoietrue
oufalse
.utilisation
do{..... }while();
comme:
Comment puis-je revenir à l'essai de la boucle si l'utilisateur répond à Y/y?
Vous ne pouvez pas revenir à
try{.....}
. Vous devez utiliserau lieu de
public static void main(String[] args){}
et pour revenir utilisation
main();
à l'emplacement de votre choix de code.try
ne pas créer une boucle. C'est ça le problème.Boucles de "revenir en arrière" automatiquement jusqu'à ce que quelque chose arrive à la fin de la boucle. C'est ce qui fait d'eux des boucles.
Donc vous mettez un véritable boucle autour du bloc try, et de poser la question à la fin de la boucle, et de sortir de la boucle si il est répondu avec N/n (ou que ce soit; vous pouvez décider pour vous-même comment vous voulez gérer si l'entrée est un autre des ordures). Le
do
-while
boucle est approprié, car il vérifie sa sortie état à la fin plutôt qu'au début (commewhile
etfor
).Java a beaucoup d'outils pour quelque chose comme cela. Ceux-ci sont connus comme des "boucles". Les boucles disponibles dans Java sont les
while
,do ... while
,for
, etfor ... each
. La boucle while est la plus simple. Il ressemble à ceci:De coeur, où j'ai mis "condition" de mettre en valeur booléenne. Une valeur booléenne est une valeur qui peut être soit
true
oufalse
, rien d'autre. En Java, vous pouvez créer des variables de laboolean
type, mais la plupart du temps, vous n'aurez pas explicitement de créer une valeur de type boolean.Au lieu de cela, vous allez utiliser les instructions conditionnelles. Par exemple
x < y
,x == y
, etx >= y
sont tous des "instructions conditionnelles". Cela signifie que, en fin de compte, ils évaluent en valeur booléenne. Donc, dans ce code:Où il est dit
x < y
, c'est en fait l'évaluation entrue
derrière les coulisses. Les valeurs booléennes sont importants et sont utilisés dans de nombreux endroits en Java.Bref, revenons sur le sujet de boucles, passons à la prochaine boucle,
do ... while
. Il ressemble à ceci:do ... while
fonctionne de la même commewhile
, mais il est toujours exécutée au moins une fois, même si la condition estfalse
.for
etfor ... each
sont un peu plus compliquées. Ils sont vraiment juste des raccourcis. Considérons le code suivant:Ici, la boucle sera exécuté 10 fois, et
i
permettra de garder une trace de la façon dont de nombreuses boucles. Lefor
boucle peut faire la même chose, mais de façon plus concise:Ce code va faire la même chose que le premier, mais il utilise un
for
boucle. Comme vous pouvez le voir, lefor
boucle en trois parties. Dans la première, vous pouvez déclarer une variable, dans le second, de vous mettre une condition, et dans la troisième, vous mettez quelque chose qui est exécuté à chaque itération de la boucle.for
boucles sont souvent utilisés lors de l'itération sur des tableaux, mais vous ne pouvez pas avoir appris que encore, donc ne vous inquiétez pas.La
for ... each
boucle est plus complexe que tous les autres, donc si vous ne comprenez pas tout de suite, ne vous inquiétez pas. En gros, c'est un moyen rapide d'obtenir tous les éléments d'une liste, ou tout ce qui est dans les Collections de l'API. Par exemple, disons que vous avez une liste de Chaînes, vous pouvez l'utiliser pour obtenir toutes les Chaînes dans la liste:Qui serait aller à travers chaque Chaîne dans la liste et de les imprimer.
Bref, revenons à notre problème. Ici, nous avons besoin de choisir une boucle à utiliser, et il semble que le meilleur pour la situation serait une simple
while
boucle. Juste faire quelque chose comme ceci:Ici, nous utilisons deux
while
boucles. La première enveloppe l'ensemble du code, la vérification de booléenne appeléecondition
. Nous avons initialisé à êtretrue
, de sorte que la boucle sera toujours exécuté au moins une fois. Deuxièmement, j'ai fait un autrewhile
boucle. Ici, je n'aiwhile (true)
, qui durera pour toujours. Toutefois, vous pouvez "pause" en dehors d'une boucle à l'aide de labreak
mot-clé. La raison que j'ai utilisé, l'utilisateur a la possibilité de saisir autre chose que "y" ou "n". Dans ce cas, il faut juste leur demander à nouveau. Si elle devient "Y", il définitcondition
àtrue
et les pauses de la boucle (ce qui est techniquement inutile, puisque la condition est d'ores et déjàtrue
). Si elle devient "N", il définitfalse
et les pauses de la boucle. Puisqu'il est désormaisfalse
, la boucle sera fermé et le programme prendra fin.