【问题标题】:NextInt giving Force closeNextInt 给予强制关闭
【发布时间】:2013-06-16 11:11:36
【问题描述】:

每当我尝试执行此操作时,它都会在我的应用程序上为我提供 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

【问题讨论】:

  • "我希望第二个数字 "b" 在所有情况下都小于 a" 您的第一个代码示例中的代码,如果 ab 是既声明又int,这样做。
  • 强制关闭。我想我为这个问题标记了 android。
  • @user2479697:明白了。仍然值得实际输入。 :-)
  • 告诉我们变量ab在哪里初始化。
  • @user2479697 初始化,未声明

标签: java android random


【解决方案1】:

如果对nextInt 的第一次调用返回 0,您将得到一个异常。然后第二次调用不能返回一个大于或等于 0 但小于 0 的值,因此例外。

来自Random.nextInt 的文档:

抛出: IllegalArgumentException - 如果n 不是正数

不过,您应该退后一步,弄清楚为什么您的诊断方法实际上没有看到这些异常详细信息。你检查过应用程序日志吗?我希望异常是清楚的,有正确的异常,这样就可以很明显地看出哪里出了问题。

编辑:我非常怀疑它是否真的抛出异常每当代码被执行。相反,我怀疑 或者 该代码执行了很多次(所以最终你会看到 a 为 0 并且会抛出异常)或者你已经只是运气不好。

【讨论】:

  • 但为什么“每当 我尝试执行...”?
  • 看来我的巧合很糟糕:P
  • 你的nextInt()返回0只是为了引起Skeet的注意......:D
猜你喜欢
  • 1970-01-01
  • 2015-04-03
  • 2013-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多