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

Java循环和if语句中的随机数,java,if-statement,random,while-loop,Java,If Statement,Random,While Loop,我正在写一个程序,用户输入一个数字,计算机猜测这个数字 我的while循环中的else/if语句有问题。问题是它打印出的猜测较高,但计算机并不总是猜测较高。我不知道如何解决这个问题 while(computerGuess != userGuess) { if(computerGuess > userGuess) { System.out.println("Guess lower: "); computerGuess = guess.nextInt(u

我正在写一个程序,用户输入一个数字,计算机猜测这个数字

我的while循环中的else/if语句有问题。问题是它打印出的猜测较高,但计算机并不总是猜测较高。我不知道如何解决这个问题

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++;
}
问题是它打印出来的猜测更高,但计算机没有 总是猜得更高。我不知道如何解决这个问题

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++;
}
您正在为随机数生成指定硬编码限制101。但是,如果计算机猜测小于用户值,则需要在计算机猜测和用户猜测之间生成一个随机数

替换

computerGuess=guess.nextInt101


computerGuess=guess.nextInUserGuess-computerGuess+computerGuess+1

如果您试图构建一个计算机通过二进制搜索逻辑猜测数字的程序,那么您的代码将无法工作。下面的代码将执行类似于二进制搜索的逻辑

int i=0;int j=101;
while(computerGuess != userGuess) {

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

PS:未测试拐角处的情况。代码只是提供一个基本概念。

提供一个。猜测变量是java.util.Random吗?如果您使用的是java.util.Random,那么。nextInt101将返回一个介于0和100之间的随机数-它不能保证高于上一个。guess.nextIntuserGuess。。。这对个人电脑来说有点不公平,因为它永远猜不出那一行的正确数字。guess.nextInt101需要和偏移量,并且可以保证用户数低于101吗?可能的重复项非常有用,谢谢。“我想我只是没有认真思考如何使用变量来操纵计算机猜测而已。”MasonMyers说。很高兴能帮上忙。