您好,我正在学习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) {
...
}