num1 = randomNum.nextInt(20);
num2 = randomNum.nextInt(num1);
このなステートメント法的です構文POVから理論的にはソース)
EquationMin.mainで (EquationMin.java:19)は、私はこれを実行すると、私は、メインの 『java.lang.illigalArgumentException <br> 「スレッドの例外』を取得するJava
num1 = randomNum.nextInt(20);
num2 = randomNum.nextInt(num1);
このなステートメント法的です構文POVから理論的にはソース)
EquationMin.mainで (EquationMin.java:19)は、私はこれを実行すると、私は、メインの 『java.lang.illigalArgumentException <br> 「スレッドの例外』を取得するJava
/:はい
しかし、問題があります:
[random#nextInt(int)]この乱数ジェネレータのシーケンスから引き出された、0以上(指定しない)の間で均等に分布する擬似乱数int値を返します。
docsより。 - 定義あたりの0が正ではないので、nが
正でない場合、 、IllegalArgumentExceptionを:これはnum1
が実際に例外0しかし
[ランダム#nextInt(int型)]になるかもしれない意味しますこれにより
IllegalArgumentException
が発生します。最も簡単な回避策は、単にパラメータに1を追加することです:
num1 = randomNum.nextInt(20); num2 = randomNum.nextInt(num1 + 1);
nextInt
の2回目の呼び出しのためのパラメータが1のように、下限定義することができ代わりに0を向けることはありませんことを、保証するために、Math.max(num1, 1)
またはその他のもの。
うまく言えば、+1 – Arman
この場合、num1は0です。 – AhmadWabbi
@ A.Wabbiどうすればこの問題を解決できますか? – Eddie
'num2 = randomNum.nextInt(num1 + 1);' – AhmadWabbi