【发布时间】:2017-08-03 05:21:24
【问题描述】:
下面的代码在第 10 行抛出一个除以零的异常。
int s2=10,mn=20;
n = 4*s2;
i = n-1;
j = 1;
while(i!=0){
j*=2;
i--;
}
Random rand=new Random();
r = Math.abs(rand.nextInt(4*mn)) % j; // this line returns divide by zero exception
【问题讨论】:
-
很好的定位。你有什么问题?
-
我想知道为什么,对于那个特殊情况。所有其他情况都可以正常工作
-
我认为它会发生,因为当您计算 2^40 时会出现整数溢出。
-
所以将数据类型更改为 long 可以解决问题,对吧??
-
您的
do有while吗?
标签: java