有点困惑为什么这不起作用可以使用一些帮助,我想将所有值设置为false:
boolean[][] seatArray = new boolean[4][4];
for(int x = 0; x < seatArray.length; x++){
for(int y = 0; y < seatArray.length; y++){
seatArray[x][y] = false;
}
}
答案 0 :(得分:1)
您必须确保在内部for
循环中迭代正确的数组元素,以将每个值设置为false
。试试这个:
boolean[][] seatArray = new boolean[4][4];
for(int x = 0; x < seatArray.length; x++){
for(int y = 0; y < seatArray[x].length; y++){
seatArray[x][y] = false;
}
}
编辑 :您的代码仍然有效,但是按照惯例,您仍然应该这样做。
答案 1 :(得分:0)
您实际上并不需要明确设置任何值。
原始boolean
默认为false
。
因此:
boolean[][] seatArray = new boolean[4][4];
System.out.println(seatArray[0][1]);
<强>输出强>
false
答案 2 :(得分:0)
BY defaultif u初始化一个2D布尔数组,它将包含值为false 假设你有一个二维数组
boolean[][] seatArray=new boolean[4][4];//all the value will be false by default
so it is a 4*4 matrix
boolean[0] represents the the 1st row i.e Lets say it contains value like {true,true,true,true} if you need the value in individual cell you need to iterate 2 for each loop like
for (boolean[] rowData: seatArray){
for(int cellData: rowData)
{
System.out.printn("the indiviual data is" +cellData);
cellData=Boolean.false;
}
}
答案 3 :(得分:0)
您的代码应该可以运行,但这是填充2D数组的另一种解决方案:
boolean[][] b = new boolean[4][4];
for (int i = 0; i < b.length; i++)
Arrays.fill(b[i], false);
答案 4 :(得分:0)
另一种理解迭代多维数组的方法就是这样。
boolean[][] seatArray = new boolean[4][4];
//Foreach row in seatArray
for(boolean[] arr : seatArray){
for(int i = 0; i < arr.length; i ++){
arr[i] = false;
}
}
答案 5 :(得分:-1)
如果您已经给出了一个恒定大小的数组,请避免使用.length
并改为使用常量。
for(int x = 0; x < 4; x++){for(int y = 0; y < 4; y++){ ... ... }}