[英]Why am I getting java.lang.ArithmeticException: / by zero?
[英]I am getting “java.lang.ArithmeticException: / by zero” when I run my program
您好,我正在学习Java,并且尝试获取3张300x300、600x600和900x900像素的图像,并通过将图像分成3X3网格然后将图像中的每个3x3正方形混合以每次生成随机混合来对其进行加扰运行我的程序。 我决定通过将所有像素放入一个数组中,然后对该图像进行加扰(长度/ 3给我余数为0)来做到这一点。但是,我收到了错误“ java.lang.ArithmeticException:/减零”。 有人可以帮我解决我的问题吗?
public void randomPictureShift(Picture scrambledImage){
Pixel blankImage [] = this.getPixels();
Pixel originalImage [] = scrambledImage.getPixels();
//-----------------------------------------------------------------------
Random r = new Random();
for (int i = originalImage.length; i > 0; i--) {
int index = r.nextInt(i);
//-----------------------------------------------------------------------
if ((i)%(1/3) == 0){
//swap
Pixel tmp = originalImage[index];
originalImage[index] = originalImage[i];
originalImage[i] = tmp;
%(1/3)
等效于%0
,该值被零除。 您要测试的是长度是否可以除以三,您可以简单地编写
if (i % 3 == 0) {
...
}
我认为问题在于您将两个整数相除:
(i)%(1/3)=== i%0除以零
要解决此问题,您可以执行:(i)%(1.0 / 3.0)或:(i)%3
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.