Java 如何调试我的随机数猜测程序?
我需要我的程序在我选择的两个数字(最小值和最大值)之间选择一个数字,然后我有5次尝试找出他心目中的数字。但问题是计算机并不能真正解释极限——正确选择的数字有时超出了极限Java 如何调试我的随机数猜测程序?,java,random,Java,Random,我需要我的程序在我选择的两个数字(最小值和最大值)之间选择一个数字,然后我有5次尝试找出他心目中的数字。但问题是计算机并不能真正解释极限——正确选择的数字有时超出了极限min=3max=6-为什么我得到的结果是正确的数字是7 代码如下: import java.util.*; public class Game1 { public static void main(String[] args) { Scanner sc = new Scanner(Syste
min=3
max=6
-为什么我得到的结果是正确的数字是7
代码如下:
import java.util.*;
public class Game1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int min = sc.nextInt();
int max = sc.nextInt();
System.out.println("insert a number");
int rand = min + (int)(Math.random() * ((max - min) + 1));
for (int i = 0; i <=5; i++){
int number = sc.nextInt();
if (number == rand){
System.out.println("congratulations! :D");
break;
}
else if (i < number){
System.out.println("The number is too big");
}
else if (i > number){
System.out.println("the number is too small");
}
else{
System.out.println("Try again");
}
}
}
}
import java.util.*;
公共类游戏1{
公共静态void main(字符串[]args){
扫描仪sc=新的扫描仪(System.in);
int min=sc.nextInt();
int max=sc.nextInt();
System.out.println(“插入一个数字”);
int rand=min+(int)(Math.random()*((max-min)+1));
for(int i=0;i编号){
System.out.println(“数字太小”);
}
否则{
System.out.println(“重试”);
}
}
}
}
问题在于检查用户答案的if语句。您需要将用户输入的number
与随机数rand
进行比较。而是将循环计数器i
与输入进行比较
另一个问题是,您的
for
循环执行6次迭代,而不是5次。要解决此问题,请更改我先在else if part中检查您的条件。为什么要比较i和number?键入rand
而不是number
另一个使用Math
的选项是使用Random
,它有一个方法。欢迎使用堆栈溢出!看起来您需要学习使用调试器。请随便吃点。如果您以后仍然有问题,请随时回来提出更具体的问题。
for (int i = 0; i < 5; i++) {
int number = sc.nextInt();
if (number == rand) {
System.out.println("congratulations! :D");
return;
} else if (rand < number) {
System.out.println("The number is too big");
} else if (rand > number) {
System.out.println("the number is too small");
}
}
System.out.println("Try again");