outer:
while (i < 256 & j < 256) {
if (i == 0) {
j += 1;
w += 1; arrayAfterZigZag[w] = xx[i][j];
while(j!=0)
i += 1;
j -= 1;
w += 1;
arrayAfterZigZag[w] = xx[i][j];
continue;
}
if (j == 0) {
j += 1;
w += 1;
arrayAfterZigZag[w] = xx[i][j]; do {
i -= 1;
j += 1;
w += 1;
arrayAfterZigZag[w] = xx[i][j];
} while (i == 0);
}
}
补充:arrayAfterZigZag[w]  是之字形扫描后的的一维数组
      a[i][j] 是被扫描的 二维数组

解决方案 »

  1.   

    while (i < 256 && j < 256) ????????&&是逻辑与
    &是二进制的按位与
      

  2.   

    还有
    if / while什么的,是不是都缺少{
      

  3.   

    while (i < 256 && j < 256)这个是当i<256并且j<256的时候
      

  4.   

    以下是完整的代码,高手给指点下吧  public class ZigTag {
    int i = 0, j = 0; int w = 0; final static int NUM = 65536; int[] arrayAfterZigZag = new int[NUM];// 测试用 int[][] xx = new int[256][256];// 测试数组 public ZigTag() {
    xx[0][0] = 1;
    xx[0][1] = 2;
    xx[0][2] = 3;
    xx[0][3] = 4;
    xx[1][0] = 11;
    xx[1][1] = 21;
    xx[1][2] = 31;
    xx[1][3] = 41;
    xx[2][0] = 111;
    xx[2][1] = 211;
    xx[2][2] = 311;
    xx[2][3] = 411; // 之字形扫描
    while (i < 256 && j < 256) {
    if (i == 0) {
    arrayAfterZigZag[w] = xx[i][j];
    j += 1;
    w += 1;
    arrayAfterZigZag[w] = xx[i][j];

    while (j != 0) {
    i += 1;
    j -= 1;
    w += 1;
    arrayAfterZigZag[w] = xx[i][j];
    }
    }
    if (j == 0) {
    i += 1;
    w += 1;
    arrayAfterZigZag[w] = xx[i][j]; while (i != 0) {
    i -= 1;
    j += 1;
    w += 1;
    arrayAfterZigZag[w] = xx[i][j];
    }
    }
    }
    }
    public static void main(String[] args) {
    new ZigTag();
    }
    }