Comment répéter l'instruction “if” lorsque la sortie est faux
Je suis en train de travailler sur un jeu simple dans lequel l'utilisateur doit deviner un nombre aléatoire. J'ai tout le code mis en place, sauf pour le fait que si la conjecture est trop élevé ou trop bas, je ne sais pas comment faire pour leur permettre de re-entrez un numéro et continuer à jouer jusqu'à ce qu'ils obtiennent. Il s'arrête juste; voici le code:
import java.util.Scanner;
import java.util.Random;
public class Test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
Random rand = new Random();
int random = rand.nextInt(10) + 1;
System.out.print("Pick a number 1-10: ");
int number = input.nextInt();
if (number == random) {
System.out.println("Good!");
} else if (number > random) {
System.out.println("Too Big");
} else if (number < random) {
System.out.println("Too Small");
}
}
}
OriginalL'auteur Trevn Jones | 2015-09-25
Vous devez vous connecter pour publier un commentaire.
Afin de répéter tout ce que vous besoin d'une boucle.
Une façon courante de la répétition jusqu'à ce qu'une condition dans le milieu de la boucle du corps est satisfait, c'est la construction d'une boucle infinie, et l'ajout d'un moyen de sortir.
Idiomatiques moyen de faire une boucle infinie en Java est
while(true)
:Cette boucle va continuer les itérations jusqu'à ce que le code sentier atteint le
break
déclaration.Je suis en désaccord avec votre évaluation de l'utilité de
break
: bien qu'il peut être abusé comme la plupart des constructions de langage, il permet également d'améliorer la clarté dans plusieurs situations importantes. Fin d'une boucle à partir du milieu de la boucle du corps, qui est commun à tous les langages impératifs, est une telle situation. Il est donc fondamental que certaines langues (par exemple, Ada) ont constructions en boucle que require l'utilisation d'unbreak
-comme énoncé (exit
déclaration en Ada).Intéressant. Pour moi, se terminant le corps d'une boucle dans le milieu suggère une instruction de retour, qui à son tour suggère que la boucle est le principal organe de la méthode, bien que quelques lignes pourraient être nécessaires pour mettre en place certaines variables. Votre est instructif, cependant.
OriginalL'auteur dasblinkenlight
Vous devez utiliser un boucle. Le code devrait fonctionner comme ceci:
OriginalL'auteur tstark81
Vous pouvez utiliser un
do...while
.number
est définie à l'intérieur de la boucle, ce qui signifie que si vous l'utilisez à l'extérieur de la boucle dans l'instruction conditionnelle, il est hors de portée.Non, il ne le sera pas, le nombre aléatoire est généré avant la boucle. Votre point est valable sur l'étendue, l'initiation de la variable peut être placé à l'extérieur et affecté à l'intérieur si nécessaire.
Ok. J'obtiens une erreur de compilation pour la définition de la
int
l'intérieur de la boucle.OriginalL'auteur Lock
Plusieurs techniques existent pour la boucle de votre demande, parmi eux:
while (<condition>) { <do something> }
do { <something> } while (<condition>);
for (<init statement>, <condition>, <update statement>) { <do something> }
À montrer, vous pouvez éviter d'utiliser l'un des ci-dessus explicite des constructions en boucle en utilisant la récursivité:
Ici la
ask()
méthode continue d'appeler lui-même, jusqu'à la fin de l'état (utilisateur l'aurez deviné) est atteint.Selon l'intelligence de la machine virtuelle Java ce pourrait souligner la pile d'appel, ou pas.
OriginalL'auteur mvw
Joindre les instructions if dans une boucle while, qui boucle tout autour de l'utilisateur n'a pas deviné le nombre:
number
est hors de portée dans cet exemple et provoquera une erreur de compilation.OriginalL'auteur mcleod_ideafix
Afin de répéter le code sous certaines conditions, l'utilisation d'une boucle.
OriginalL'auteur intcreator
Ce que vous cherchez sont des constructions dans le langage de programmation qui vous permettent de faire une chose, encore et encore.
Cela se fait à l'aide de boucles.
De vérifier la les docs pour la boucle while par exemple. C'est ce que vous avez besoin.
OriginalL'auteur darkryder