【问题标题】:'For loop' doesn't finish for some reason'for循环'由于某种原因没有完成
【发布时间】:2013-10-05 15:57:06
【问题描述】:

我有一个数组,我正在尝试使用内核进行模糊处理,但由于某种原因循环没有完成,代码如下:

for (int x = 0; x < 128; x++) {
            for (int y = 0; y < 128; y++) {
                for (int kx = -2; x <= 6; x++) {
                    for (int ky = -2; y <= 6; y++) {

                        nlm2[x][y] += 100 * (int) ((float) nlm[x][y]*(float)kernel[(kx+3)*(ky+3)-1]);
                        System.out.println(x+" "+y);

                        System.out.println(kx+" NLM: "+(float) nlm[x][y]);
                        System.out.println(ky+" Kernel: "+(float)kernel[(kx+3)*(ky+3)-1]);

                    }
                }
            }
        }

好像停了 x = 0; y = 6 kx = ky = -2

控制台没有错误,在这个小循环后显示另一个打印屏幕。

【问题讨论】:

  • 调试是自切片面包以来最好的事情,但只有你自己动手。
  • 您的最内层循环递增并测试y 值而不是ky

标签: java for-loop


【解决方案1】:

这行可能是问题所在。-

for (int kx = -2; x <= 6; x++) {
    for (int ky = -2; y <= 6; y++) {

您将分别递增 xy,而不是 kxky

我猜你是认真的。-

for (int kx = -2; kx <= 6; kx ++) {
    for (int ky = -2; ky <= 6; ky ++) {

【讨论】:

    猜你喜欢
    • 2021-04-13
    • 2021-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-20
    • 2014-12-27
    • 1970-01-01
    相关资源
    最近更新 更多