以下代码是固定了四个层次之后的编码规则(格式如:xx-xx-xx-xx),如果层次不固定的话改怎么循环?for(int level1(层次1) = 1(开始编码); level1 <= 11(结束编码); level1++)
{
  String s1 = level1 + "-";
  for(int level2(层次2) = 1(开始编码); level2 <= 2(结束编码); level2++)
  {
    String s2 = level2 + "-";
    for(int level3(层次3) = 1(开始编码); level3 <= 2(结束编码); level3++)
    {
      String s3 = level3 + "-";
      for(int level4(层次4) = 1(开始编码); level4 <= 2(结束编码); level4++)
      {
        String s4 = String.valueOf(level4);
        System.out.println("==>"+s1 + s2 + s3 + s4);
      }  
     }
  }
}

解决方案 »

  1.   

    我举个例子

    int c = CengCilength()    //有几层 ,这个方法自己重写,比如"xx-xx-xx",这个方法就返回3
    for(int level1(层次1) = 1(开始编码); level1 <= c(结束编码); level1++)
    {
          .......
          .......
    }
      

  2.   

    晚上无聊,顺手写了个实现:
    public class TraversalArray { public static void main(String[] args) {
    traversal(new int[] { 3, 4, 5 });
    } public static void traversal(int[] times) {
    int[] pot = new int[times.length];
    // Initialize the pointer
    for (int i = 0; i < pot.length; i++) {
    pot[i] = 1;
    } while (true) {
    // Assemble the code
    String str = String.valueOf(pot[pot.length - 1]);
    for (int i = pot.length - 2; i >= 0; i--) {
    str = String.valueOf(pot[i]) + "-" + str;
    }
    System.out.println(str); // Counter++
    int lvl = pot.length - 1; // Level pointer
    while (++pot[lvl] > times[lvl]) {
    pot[lvl] = 1;
    if (--lvl < 0) {
    return;
    }
    }
    }
    }
    }运行结果:
    1-1-1
    1-1-2
    1-1-3
    1-1-4
    1-1-5
    1-2-1
    1-2-2
    1-2-3
    1-2-4
    1-2-5
    1-3-1
    1-3-2
    1-3-3
    1-3-4
    1-3-5
    1-4-1
    1-4-2
    1-4-3
    1-4-4
    1-4-5
    2-1-1
    2-1-2
    2-1-3
    2-1-4
    2-1-5
    2-2-1
    2-2-2
    2-2-3
    2-2-4
    2-2-5
    2-3-1
    2-3-2
    2-3-3
    2-3-4
    2-3-5
    2-4-1
    2-4-2
    2-4-3
    2-4-4
    2-4-5
    3-1-1
    3-1-2
    3-1-3
    3-1-4
    3-1-5
    3-2-1
    3-2-2
    3-2-3
    3-2-4
    3-2-5
    3-3-1
    3-3-2
    3-3-3
    3-3-4
    3-3-5
    3-4-1
    3-4-2
    3-4-3
    3-4-4
    3-4-5