gpt4 book ai didi

java - 如何修复变量不等于用户输入

转载 作者:行者123 更新时间:2023-12-02 08:40:49 24 4
gpt4 key购买 nike

我的程序要求用户输入一个数字,然后验证该数字是否在两个随机生成的数字的范围内或在该范围之外。变量 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

最佳答案

不同函数中的变量并不因为具有相同的名称而神奇地相同。如果您希望能够共享变量而不将它们作为参数或返回值传递,那么您需要在类中声明它们。

具体来说,这是您的两个选择。选择1(推荐):更改getValidGuess(scan);num = getValidGuess(scan); 。选择2:输入public static int num = 0;就在你的类中,所有函数之外,并删除 num 的声明来自您的所有功能。

关于java - 如何修复变量不等于用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61401013/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com