num1 = randomNum.nextInt(20);
num2 = randomNum.nextInt(num1);
當我跑,我得到主‘java.lang.illigalArgumentException
「在線程異常’:綁定必須獨到之處
在java.util.Random.nextInt(發生不明源)
在EquationMin.main(EquationMin.java:19)這是statment在Java中的法律
num1 = randomNum.nextInt(20);
num2 = randomNum.nextInt(num1);
當我跑,我得到主‘java.lang.illigalArgumentException
「在線程異常’:綁定必須獨到之處
在java.util.Random.nextInt(發生不明源)
在EquationMin.main(EquationMin.java:19)這是statment在Java中的法律
理論上/從語法POV:是
但是有一個問題:
[Random#nextInt(int)]返回一個僞隨機數,它是從該隨機數生成器的序列中抽取的介於0(含)和指定值(不含)之間的均勻分佈的int值。
來自docs。這意味着num1
實際上可能變成是0。但
[隨機#nextInt(INT)]拋出: - 如果n不是正
由於0每定義不爲正,這將導致IllegalArgumentException
。
最簡單的解決方法是隻需添加1〜參數:
num1 = randomNum.nextInt(20);
num2 = randomNum.nextInt(num1 + 1);
保證,對於的nextInt
第二次調用的參數將永遠不會變成0而不是一個可以定義一個下界,像Math.max(num1, 1)
或其他東西。
恰好說明,+1 – Arman
num1在這種情況下爲零 – AhmadWabbi
@ A.Wabbi那麼,我該如何解決這個問題? – Eddie
'num2 = randomNum.nextInt(num1 + 1);' – AhmadWabbi