Java循环和if语句中的随机数

时间:2017-10-04 18:03:24

标签: java if-statement random while-loop

我正在编写一个程序,用户输入一个数字,计算机就会猜出这个数字。

我的else循环中的if / while语句出现问题。问题是打印出"guess higher",但计算机并不总是猜得更高。我不确定如何解决这个问题。

while(computerGuess != userGuess) {
    if(computerGuess > userGuess) {
        System.out.println("Guess lower: ");
        computerGuess = guess.nextInt(userGuess);
        System.out.println(computerGuess);
    }else if(computerGuess < userGuess) {
        System.out.println("Guess higher: ");
        computerGuess = guess.nextInt(101);
        System.out.println(computerGuess);
    }
    amountTries++;
}

2 个答案:

答案 0 :(得分:1)

  

问题是打印出“猜得更高”,但计算机却没有   总是猜得更高。我不确定如何解决这个问题。

您为随机数生成指定了101的硬编码限制。但是在计算机猜测小于用户值的情况下,您需要在计算机猜测和用户猜测之间生成一个随机数。

<强>替换

computerGuess = guess.nextInt(101);

<强>与

computerGuess = guess.nextInt(userGuess - computerGuess) + computerGuess + 1;

答案 1 :(得分:0)

如果您正在尝试构建一个程序,计算机通过二进制搜索逻辑猜测数字,那么您的代码将不起作用。以下代码将执行二进制搜索类逻辑。

{{1}}

PS:没有测试角落情况。代码只是提供一个基本的想法。