我有一个需要从 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; } }感谢您的帮助。
1 回答
饮歌长啸
TA贡献1951条经验 获得超3个赞
似乎问题出在
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)
返回介于 0(包括)和指定值(不包括)之间的伪随机、均匀分布的 int 值
添加回答
举报
0/150
提交
取消