NextInt让Force关闭

时间:2013-06-16 11:11:37

标签: java android random

每当我尝试执行此操作时,它会在我的应用程序中为我提供FC

int a, b;
Random s = new Random();
    if (diffi.contains("easy") && name.contains("sub")) {
        a = s.nextInt(21);
        b = s.nextInt(a);
    }

但是当删除“a”并将数字放在其位置然后它开始工作

int a, b;
Random s = new Random();
    if (diffi.contains("easy") && name.contains("sub")) {
        a = s.nextInt(21);
        b = s.nextInt(21);
    }

我希望第二个数字“b”小于a

1 个答案:

答案 0 :(得分:5)

如果对nextInt的第一次调用返回0,则会出现异常。然后第二次调用不能返回大于或等于0但小于0的值0,因此例外。

来自Random.nextInt的文档:

  

投掷: IllegalArgumentException - 如果n不是正面

你应该退一步,找出你的诊断方法实际上没有看到那些异常细节的原因。你检查过申请日志了吗?我希望异常是明确的,有正确的例外,这样可以明显地说明错误。

编辑:我非常怀疑,无论何时执行该代码,它实际上都会抛出异常。相反,我怀疑要么代码执行了很多次(所以最终你会看到a为0并且会抛出异常)你只是不走运。