Java 没有循环或“while”代码的高或低游戏
我是一名正在使用java的学生,我很难编写一个高低猜度的游戏。我不能使用循环或while代码。有什么想法吗?这就是我现在所拥有的:Java 没有循环或“while”代码的高或低游戏,java,Java,我是一名正在使用java的学生,我很难编写一个高低猜度的游戏。我不能使用循环或while代码。有什么想法吗?这就是我现在所拥有的: public class FinalProject1 { public static void main(String [] args) { System.out.println("Number Guessing Game 1-1000\nGuess a number"); guess(); } publ
public class FinalProject1
{
public static void main(String [] args)
{
System.out.println("Number Guessing Game 1-1000\nGuess a number");
guess();
}
public static int random()
{
int x = (int)(1000*Math.random() + 1);
return x;
}
public static void guess()
{
int num = random();
int tries = 0;
Scanner keyboard = new Scanner(System.in);
String inputString = keyboard.nextLine();
int input = Integer.parseInt(inputString);
if (input > num)
{
System.out.println("Guess a higher number");
inputString = keyboard.nextLine();
}
else if (input < num)
{
System.out.println("Guess a lower number");
inputString = keyboard.nextLine();
}
else if (num == input)
{
System.out.println("You Win");
}
}
}
首先,你的逻辑有缺陷。如果输入>数值,则用户猜测的数值太高,需要猜测一个较低的数值 其他人建议使用递归,这是您的问题的常见解决方案,并且可能是您需要做的,因为您可能刚刚了解了递归 但是,由于我喜欢相反,我会通过启动一个新线程来实现,如下所示:
public class FinalProject1 implements Runnable {
private Scanner keyboard = new Scanner(System.in);
private int num = random();
public static void main(String[] args) {
System.out.println("Number Guessing Game 1-1000\nGuess a number");
new Thread(new FinalProject1()).start();
}
public static int random() {
return (int) (1000 * Math.random() + 1);
}
@Override
public void run() {
String inputString = this.keyboard.nextLine();
int input = Integer.parseInt(inputString);
if (input > this.num) {
System.out.println("Guess a lower number");
new Thread(this).start();
} else if (input < this.num) {
System.out.println("Guess a higher number");
new Thread(this).start();
} else if (this.num == input) {
System.out.println("You Win");
}
}
}
有几件事
您的>&<上下检查是向后的
您需要使用递归,以便在没有任何循环的情况下产生预期的行为
public static void main(String [] args)
{
System.out.println("Number Guessing Game 1-1000\nGuess a number");
int num = random();
Scanner keyboard = new Scanner(System.in);
guess(keyboard, num);
}
public static int random()
{
int x = (int)(1000*Math.random() + 1);
return x;
}
public static void guess(Scanner keyboard, int goal)
{
String inputString = keyboard.nextLine();
int input = Integer.parseInt(inputString);
if (input < goal)
{
System.out.println("Guess a higher number");
guess(keyboard, goal);
}
else if (input > goal)
{
System.out.println("Guess a lower number");
guess(keyboard, goal);
}
else if (input == goal)
{
System.out.println("You Win");
}
}
基本上,我们得到的是他们的反应,检查结果是>还是<,告诉他们,然后立即再次调用guess方法,以重复这个过程,直到他们得到正确的结果
一开始,围绕递归进行思考可能相当困难,如果你不理解递归,请继续练习。从一开始就读这句话。@ElliottFrisch,然后单击了解更多:完成了你建议的所有更改,并更改了周围的一些内容。非常感谢您的帮助。没问题!:你可以自由选择+1