【发布时间】:2017-06-30 18:37:36
【问题描述】:
我需要复制一个二维布尔数组并将每个布尔值更改为相反的值...将 true 更改为 false 并将 false 更改为 true。我意识到我的代码中可能还有其他一些问题,但这是我的主要问题。
我收到以下错误:
错误:不兼容的类型:boolean[] 无法转换为 boolean[][]
boolean[][] newArray = new boolean[array.length];
错误:找不到符号
if(newArray[i][i] = false)
if 语句中的每个 [i] 变量都有相同的错误。
public class mod4Lec
{
public static void main(String[] args) {
//Creates array of boolean
boolean[][] array = {
{true, false, true, false},
{false, true, false, true},
{true, false, true, false},
{false, true, false, true},
};
System.out.println("Before: ");
//Prints original array
for(int row=0; row<array.length; row++) {
for(int column=0; column<array[row].length; column++)
System.out.print(array[row][column] + " ");
System.out.println();
}
}
//Pass array to method
public static void swapArray(boolean[][] array){
//Copy array
boolean[][] newArray = new boolean[array.length];
for (int column = 0; column < array.length; column++)
newArray[row][column] = array[row][column];
//Search for boolean true and switch to false
for (int i = 1; i < newArray.length; i++){
if(newArray[i][i] = true)
newArray[i][i] = false;
}
//Search for boolean false and switch to true
if(newArray[i][i] = false){
newArray[i][i] = true;
}
return newArray;
}
}
【问题讨论】:
-
我认为错误信息已经足够清晰了。你为什么不同意?
-
一件事:你需要 == 来比较两个布尔值。您在 if 条件中使用 single = 是一个分配,而不是比较!
-
我不知道如何解决这个错误。
-
new boolean[array.length]初始化一维数组。你想要一个 2D 的。