在随机数之间产生价值

时间:2014-01-27 09:09:47

标签: java

这几乎是我之前的一个问题的重新发布,但我一直在努力指出问题可能出在哪里,但我仍然无法控制错误。

我已经谷歌周围的“随机数之间产生价值”并发现这篇文章 How do I generate a random value between two numbers

感觉就像我在正确的道路上,但我仍然得到错误

线程“main”中的异常java.lang.IllegalArgumentException:n必须为正数     在java.util.Random.nextInt(未知来源)     在test1.testvoid $ TestVoidMethod.main(testvoid.java:29)

告诉错误指出我的第29行

int randomInt = randomGenerator.nextInt(lastGuess);

任何建议研究员?

Random randomGenerator = new Random();
String result = "";

int[] myIntArray = new int[10];
int i = 0;
int lastGuess = 1;
result = checkWhichNumberThisIs(0);

while (!result.equals("Equal")) {
    if (result.equals("Higher")) {
        int randomInt = randomGenerator.nextInt((10 - lastGuess + 1)) + lastGuess;

        lastGuess = randomInt;
        result = checkWhichNumberThisIs(randomInt);

        System.out.println(lastGuess + " higher");

    } else if (result.equals("Lower")) {

        int randomInt = randomGenerator.nextInt(lastGuess);

        System.out.println(randomInt + " array");
        lastGuess = randomInt;
            if (myIntArray.equals(randomInt)) {
                result = checkWhichNumberThisIs(randomInt);

                System.out.println(lastGuess + " lower");
            }
        }

    myIntArray[i] = lastGuess;
    i++;

}

1 个答案:

答案 0 :(得分:0)

这显然是“家庭作业”或“学习练习”所以这里是找到问题并修复它的“秘诀”:

  1. 启动IDE并切换到调试器
  2. 在方法的第一行设置断点
  3. 开始调试,当程序到达断点时,单步执行并观察lastGuess如何更改。
  4. 对正在发生的事情(以及为什么)进行心理描绘,并将其与您想要该计划的心理图片进行比较。
  5. 考虑如何修复它......
  6. 现在我们可以为你做这个...但是>>你<<在这个过程中几乎没有任何东西。