J'ai un code je dois ensemble de 0-100 et avoir une possibilité d'avoir zéro être la bonne réponse. J'ai mis mes ints finales à MAX (100) / MIN (0). Mais 0 est jamais la bonne réponse. Je suis 4 ans en codage avec 2 ans d'expérience en Java, mais il semble que tout problème 1-100 ou 1 tout autre MAX est très bien. S'il vous plaît aider ou expliquer si 0 est pas une sélection autorisée.
import java.util.Random;
import java.util.Scanner;
public class GuessingGame {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
Random generator = new Random();
int MIN = 0;
int MAX = 100;
int answer;
int guess;
String another = "y";
boolean flag = false;
boolean anotherFlag = true;
while(anotherFlag){
answer = generator.nextInt(MAX) + 1;
System.out.println("I'm thinkin of a number between 0 and " + MAX );
System.out.println("Can you guess what it is? \n");
flag = false;
while(!flag) {
guess = scan.nextInt();
if(guess == answer){
System.out.println("You guessed correctly");
flag = true;
} else{
System.out.println("That was wrong, try again.");
}
}
System.out.println("Want to Play again?(y/n)");
another = scan.next();
if(another.equalsIgnoreCase("y") == true){
anotherFlag = true;
} else{
anotherFlag = false;
}
}
Merci de votre aide.
Il semble que le problème est avec
answer = generator.nextInt(MAX) + 1;
Votre gamme de réponse est 1 - MAX.
si vous voulez générer un nombre aléatoire entre 0 - MAX, où MAX = 100. Vous devriez écriture différée
answer = generator.nextInt(MAX+1);
Parce que pour l'API Java (Java v8),
public int nextInt(int bound)
retourne un pseudo-aléatoire, la valeur d'int uniformément distribué entre 0 (inclus) et la valeur spécifiée (exclusive)