java - 无法从布尔值中获得正确显示的结果
问题描述
我的程序向用户询问一个数字,然后决定该数字是在两个随机生成的数字的范围之间还是在它之外。一切正常,除了程序不断给出猜测数字超出范围的结果,即使它在范围内也是如此。不知道如何让答案正确显示。Boolean result = true 存在,因为如果不是,则会出现“找不到符号”错误。
代码:
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)
{
int n1, n2;
boolean result = true;
Random gen = new Random();
n1 = gen.nextInt(99) + 1;
n2 = gen.nextInt(99) + 1;
if(n1 < n2)
{
start = n1;
end = n2;
} // if end
else
{
start = n2;
end = n1;
} //else end
if(num > start && num < end){
result = true;
System.out.println("\nThe 2 random numbers are " + start +
" and " + end);
System.out.println("Good Guess!");
} //if end
if(num < start || num > end){
result = false;
System.out.println("\nThe 2 random numbers are " + start +
" and " + end);
System.out.println("Outside range.");
} //if end
return result;
} // displayGuessResults end
public static void main(String[] args) {
// start code here
int start = 0, end = 0, num = 0, input;
Scanner scan = new Scanner(System.in);
String doAgain = "Yes";
while (doAgain.equalsIgnoreCase("YES")) {
// call method
input = getValidGuess(scan);
displayGuessResults(start, end, num);
System.out.print("\nEnter YES to repeat --> ");
doAgain = scan.next();
} //end while loop
} //main end
解决方案
你displayGuessResult
应该改进:
public static boolean displayGuessResults(int num) {
boolean result = true;
Random gen = new Random();
int n1 = gen.nextInt(99) + 1;
int n2 = gen.nextInt(99) + 1;
int start = Math.min(n1, n2);
int end = Math.max(n1, n2);
System.out.println("\nThe 2 random numbers are " + start + " and " + end);
if(num >= start && num <= end){
result = true;
System.out.println("Good Guess!");
} else {
result = false;
System.out.println("Outside range.");
}
return result;
} // displayGuessResults end
input
并且您必须使用扫描仪中的读取来调用它:
input = getValidGuess(scan);
displayGuessResults(input);
推荐阅读
- java - 带有 Java/Springboot 的 GraphQL 无法从传递的查询中选择模式中定义为 onField 的自定义指令
- c - 读取重定向输出并将其输出重定向到下一个子进程的进程,依此类推
- angular - 无法在角度 10 中绑定到“FormGroup”
- php - Laravel 5.8:获取与订单详细信息相关的产品名称
- java - 使用当前搜索栏创建另一个搜索栏不起作用
- android - 为什么要在片段中将 View Binding 对象拆分为可为空和不可为空的属性?
- javascript - OpenGL 是按照内部查看器还是外部查看器查看的顺序排列的?
- c++11 - 我不明白为什么我会不断收到此错误:
- java - arrayList 中的第一项始终为空,并且不能在 Java 的 for 循环中被覆盖
- python - 如何将一串数字拆分为 Pandas 数据框中的编号列?