Java NextInt给力关闭
无论何时我尝试执行它,它都会在我的应用程序上为我提供FCJava NextInt给力关闭,java,android,random,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); } 但是当移除一个并在其位置放置一个数字时,它就开始工作了 int a, b; Random s = new Random(
int a, b;
Random s = new Random();
if (diffi.contains("easy") && name.contains("sub")) {
a = s.nextInt(21);
b = s.nextInt(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如果对nextInt的第一次调用返回0,则会出现异常。然后第二个调用不能返回大于或等于0但小于0的值,因此出现异常 从Random.nextInt的文档中: 抛出:IllegalArgumentException-如果n不是正数 不过,您应该退一步,弄清楚为什么您的诊断方法实际上没有看到这些异常细节。你检查过应用程序日志了吗?我希望例外是清楚的,有正确的例外,这将使错误变得相当明显
编辑:我非常怀疑它在执行代码时是否真的抛出异常。相反,我怀疑该代码执行了很多次,因此最终您将看到a为0并抛出异常,或者您只是运气不好。如果对nextInt的第一次调用返回0,您将得到异常。然后第二个调用不能返回大于或等于0但小于0的值,因此出现异常 从Random.nextInt的文档中: 抛出:IllegalArgumentException-如果n不是正数 不过,您应该退一步,弄清楚为什么您的诊断方法实际上没有看到这些异常细节。你检查过应用程序日志了吗?我希望例外是清楚的,有正确的例外,这将使错误变得相当明显
编辑:我非常怀疑它在执行代码时是否真的抛出异常。相反,我怀疑该代码执行了很多次,因此最终您将看到a为0并引发异常,或者您只是运气不好。我希望第二个数字b在所有情况下都小于a。如果a和b都声明且都为int,则第一个代码示例中的代码会这样做。强制关闭。我想我为这个问题给安卓加了标签。@user2479697:Gotcha。仍然值得把它打印出来-告诉我们变量a和b的初始化位置。@user2479697已初始化,而不是declaredI我希望第二个数字b在所有情况下都小于a第一个代码示例中的代码,前提是a和b都已声明,并且都为int。强制关闭。我想我为这个问题给安卓加了标签。@user2479697:Gotcha。仍然值得把它打印出来-告诉我们变量a和b的初始化位置。@user2479697已初始化,而不是declared,但为什么每次我尝试执行…?似乎我遇到了一个糟糕的巧合:PYour nextInt返回0只是为了引起Skeet的注意…:但为什么每次我试图执行…?似乎我有一个糟糕的巧合:Pyor nextInt返回0只是为了引起Skeet的注意…:D