【发布时间】:2020-04-24 04:11:27
【问题描述】:
我的程序要求用户输入一个数字,然后验证该数字是在两个随机生成的数字的范围内还是在该范围之外。变量 num 应该是用户的猜测,但它一直等于 0。我不确定它是否与 main 中的 num = 0 有关,因为我得到一个“变量可能未初始化”如果 = 0 不存在则错误。
代码:
public static int getValidGuess(Scanner get)
{
int num;
System.out.print("Guess a number: --> ");
num = get.nextInt();
return num;
} // getValidGuess end
public static boolean displayGuessResults(int start, int end, int num)
{
boolean result;
Random gen = new Random();
int n1 = gen.nextInt(99) + 1;
int n2 = gen.nextInt(99) + 1;
if (n1 < n2){
start = n1;
end = n2;
} //if end
else
{
start = n2;
end = n1;
} //else end
System.out.println("\nThe 2 random numbers are " + start + " and " + end);
System.out.println("User Guess is " + num);
if(num >= start && num <= end){
result = true;
System.out.println("Good Guess!");
}
else if(num < start || num > end){
result = false;
System.out.println("Outside Range.");
}
else{
result = false;
}
return result;
} // displayGuessResults end
public static void main(String[] args) {
// start code here
int start = 0, end = 0, num = 0;
Scanner scan = new Scanner(System.in);
String doAgain = "Yes";
while (doAgain.equalsIgnoreCase("YES")) {
// call method
getValidGuess(scan);
displayGuessResults(start, end, num);
System.out.print("\nEnter YES to repeat --> ");
doAgain = scan.next();
} //end while loop
} //main end
【问题讨论】: