猜谜游戏 0-100 java
guessing game 0-100 java
我有一个代码需要设置为 0-100,并且有可能将零作为正确答案。我已将最终整数设置为 MAX(100)/MIN(0)。但 0 永远不是正确答案。我有 4 年的编码经验和 2 年的 Java 经验,但似乎任何问题 1-100 或 1- 任何其他 MAX 都很好。如果不允许选择 0,请提供帮助或解释。
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;
}
}
感谢您的帮助。
看来问题出在
answer = generator.nextInt(MAX) + 1;
您的答案范围是 1 - MAX。
如果你想生成一个介于 0 - MAX 之间的随机数,其中 MAX = 100。你应该写-
answer = generator.nextInt(MAX+1);
因为根据 Java API (java v8),
public int nextInt(int bound)
returns 0(含)和指定值(不含)之间的伪随机、均匀分布的 int 值
我有一个代码需要设置为 0-100,并且有可能将零作为正确答案。我已将最终整数设置为 MAX(100)/MIN(0)。但 0 永远不是正确答案。我有 4 年的编码经验和 2 年的 Java 经验,但似乎任何问题 1-100 或 1- 任何其他 MAX 都很好。如果不允许选择 0,请提供帮助或解释。
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;
}
}
感谢您的帮助。
看来问题出在
answer = generator.nextInt(MAX) + 1;
您的答案范围是 1 - MAX。
如果你想生成一个介于 0 - MAX 之间的随机数,其中 MAX = 100。你应该写-
answer = generator.nextInt(MAX+1);
因为根据 Java API (java v8),
public int nextInt(int bound)
returns 0(含)和指定值(不含)之间的伪随机、均匀分布的 int 值