public class Arr_Test { /**
 * @param args
 */
public static void main(String[] args) {
boolean pins[][]=new boolean[2][];
for(int i=0;i<pins.length;i++)
//下面的赋值代码我看不懂
pins[i]=new boolean[i+1];
for(int i=0;i<pins.length;i++){
for(int k=0;k<pins[i].length;k++){
System.out.print(pins[i][k]+"");

}
System.out.println();
}
}
/*
 * 输出为false
 * false false
 * 麻烦帮我解释下流程,
 * */
}

解决方案 »

  1.   

    boolean pins[][]=new boolean[2][];
    一个二维数组,可以理解为一个长度为2的一维数组,这个一维数组每个元素都是一个长度未定义的一维数组。for(int i=0;i<pins.length;i++)
        pins[i]=new boolean[i+1];
    第一次循环,给数组第一个元素定义长度为1的一维数组,里面元素默认是false;
    第二次循环,给数组第二个元素定义长度为2的一维数组,里面元素默认都是false;
      

  2.   

    for(int i=0;i<pins.length;i++)
                //下面的赋值代码我看不懂
                pins[i]=new boolean[i+1]; //定义 pins第i个元素为 i+1长度的boolean,分配内存
                
            for(int i=0;i<pins.length;i++){ //遍历一维数组 
                for(int k=0;k<pins[i].length;k++){ //因为pins[i]中保存的也是数组
                    System.out.print(pins[i][k]+"");
                    
                }