我需要一些幫助來調試下面的java程序。Java模運算符的優先級
import java.util.Random;
public class NextInt
{
public static void main(String[] args)
{
for(int i=0; i<20; ++i)
{
if(i>0)
System.out.print(", ");
int x = (new Random()).nextInt();
System.out.print(x % 2 + 1);
}
System.out.println("");
}
}
將輸出(例如):
0, 1, 0, 1, 2, 2, 2, 0, 0, 1, 1, 1, 2, 0, 1, 1, 1, 1, 2, 1
我想輸出應該已經包含只三三兩兩!如果我們考慮x % (2+1)
解釋,那麼輸出是正確的。模運算符是否比加法更弱? Java tutorial說不。還是有什麼我失蹤?
誠然這並不重要,在這個例子中,但好的做法通常應該重新使用相同的隨機對象而不是不斷創建一個並將其扔掉。 – berry120 2013-05-03 16:10:54
是的。原始代碼只生成一個產生瘋狂值的隨機數。我試圖不改變很多東西,所以我只是複製了那裏的東西。 :-) 謝謝! – Notinlist 2013-05-03 16:12:52