2015-02-10 3 views
2

Я пытаюсь получить этот метод, чтобы иметь возможность переключаться между false и true для моего 2-мерного булевского массива. Каждое значение в массиве соответствует квадрату, но мне нужно переключаться между ними каждый раз, когда в окне помещается определенный квадрат с координатами строки и столбца. Тем не менее, это дает мне ошибку для неверного оператора ==, поэтому я не уверен, как это сделать. Любая помощь будет оценена по достоинству.Toggle Boolean Values ​​в многомерном массиве

public void clickSquare(int row, int column) 
     { 

      if (grid[row][column] == false) 
      { 
       grid[row][column] == true; 
      } 
      else 
      { 
       grid[row][column] == false; 
      } 
      return; 
     } 

ответ

2

Чтобы проверить, если два значения равны, используйте ==.

К присвойте значение переменной (или элементу массива), используйте =.

grid[row][column] == false; 

должен быть

grid[row][column] = false; 

и то же самое для true.

Кроме того (но это не связано с вашей проблемой), обратите внимание, что весь ваш метод может быть заменен

public void clickSquare(int row, int column) 
    { 
     grid[row][column] = !grid[row][column]; 
    } 
+0

О, я вижу, спасибо за вашу помощь! – oZakari

+0

Если я хочу переключать все значения, могу ли я использовать Arrays.setAll()? Я попробовал 'Arrays.setAll (boolArray, i ->! I);' но i - int. 'Arrays.setAll (boolArray, i -> false);' работает. – apraetor

1

grid[row][column] это значение boolean, поэтому в состоянии if вы можете просто проверить grid[row][column] знать, есть ли его true или false.

Внутри вашего блока if, чтобы присвоить значение, вы должны использовать оператор =.

Для иллюстрации того, что вы можете просто использовать такой код:

public void clickSquare(int row, int column) 
     { 

      if (!grid[row][column]) 
      { 
       grid[row][column] = true; 
      } 
      else 
      { 
       grid[row][column] = false; 
      } 
      return; 
     } 
Смежные вопросы