无法将值分配给2d布尔数组

时间:2016-10-12 06:44:50

标签: java arrays random boolean assign

我基本上只是从java开始,并且正在努力学习一个非常基本的porgram。 我有一个2d布尔数组,我想随机填充...你不会猜它...布尔!这是我现在使用的方法,但似乎在运行它之后,数组只填充'false'。

public static void randBoard()  {
    for(boolean[] item : board) {
        for(boolean square : item)  {
            square = Math.random() < .5;
        }
    }
}

2 个答案:

答案 0 :(得分:1)

正如Kevin Esche所说:如果您通过布尔值进行每个循环,您将获得值对象,但您希望将其设置为引用。这意味着必须设置列表中的位置。

它应该使用以下代码:

public static void randBoard()  {
   Random random = new Random();
   for(int i =0; i<board.length;i++) {
       boolean[] item = board[i];
       for(int j= 0;j<item.length;j++)  {
           item[j]= random.nextBoolean();
       }
    }
 }

答案 1 :(得分:1)

你的意思是这样吗?

int d1 = 5;
int d2 = 5;
boolean[][] board = new boolean[d1][d2];
for(int i=0; i<d1; i++) {
  for(int j=0; j<d2; j++) {
    boolean square = Math.random() < .5;
    board[i][j] = square;
    System.out.print("[" + board[i][j] + "]");
  }
  System.out.println();
}