【发布时间】:2014-10-04 15:04:06
【问题描述】:
我正在尝试用 Java 构建一个数字猜谜游戏,它与通常的猜数字游戏不同,程序会告诉你它是高还是低。我正在尝试构建一个程序猜测数字并且你说它是高还是低,直到程序找到你选择的数字。
我在“if”语句中遇到问题,程序猜测的数字太低。
具体问题在这里:
if (hilow.equals("l"))
{
middle = middle * 2;
System.out.println(middle);
numbGuesses++;
}
到目前为止的整个程序如下:
import java.util.*;
public class NumbGuess
{
public static void main(String args[])
{
int numbGuesses = 0;
boolean win = false;
int hi = 1000000;
int low = 0;
Scanner input = new Scanner(System.in);
int middle = hi / 2;
System.out.println(middle);
while (win == false)
{
String hilow = input.nextLine();
if (hilow.equals("h"))
{
middle = middle / 2;
System.out.println(middle);
numbGuesses++;
}
if (hilow.equals("l"))
{
middle = middle * 2;
System.out.println(middle);
numbGuesses++;
}
if (hilow.equals("y"))
{
win = true;
System.out.println("It took: " + numbGuesses + " guesses");
}
}
}
}
我遇到的问题是,只要数字太低,就会出现永久循环:
我想我需要改变中间的操作以获得工作结果。
【问题讨论】: