我是新手 ,用C#作数字图像处理,写了一个类 ,碰到了这么一个问题
在那个J++处,提示说有 无法访问的代码请高手们指点呢...>_<
public int compare1(byte[,] im, byte[,] jm, int w, int h)//比较是否相同
        {
            int findflag=1;
            byte[,] m = new byte[w, h];
                for (int i = 0; i <w; i++)
                {
                    if(findflag==1)
                    {
                    for (int j = 0; j < h; j++)
                    {
                        if (im[i, j] != jm[i, j])
                            findflag = 0;
                        break;
                    }
                    }
                    else
                    break;
                }
            return findflag;
            }

解决方案 »

  1.   

    因为 findflag 一定是 1,所以 if (findflag == 1) ... else ... 的 else 永远不可能运行到。
      

  2.   

    本帖最后由 caozhy 于 2012-01-04 01:43:20 编辑
      

  3.   

    是因为我前面对它赋值的关系么?可是,不这么写,我怎么使findflag=1时执行外面的循环呢? 不加前面的if语句行么?
      

  4.   

    是for (int j = 0; j < h; j++)
      {}
    每次进入这个循环后,j=0时没执行j++,并且只是循环一次后就break了,
    所以j++是一直没执行的
      

  5.   

     for (int j = 0; j < h;j++) {
       if (im[i, j] != jm[i, j])
          {
    findflag = 0;
       break;
    }
    }
    这样写就没错了