我的2维布尔数组有问题。 (或者可能是打印出值的逻辑)。我在开始时将数组中的所有值设置为false,然后我将值打印到屏幕上。当我打印出来时,它们都是真实的。
x=20;
y=10;
boolArray = new boolean[x][y];
for(int c=0;c<x;c++)
{
for(int i=0;i<y;i++)
{
boolArray[c][i] = false;
}
}
System.out.println("2D Boolean Array:");
for(int a = 0; a < boolArray.length; a++)
{
for(int b = 0; b < boolArray[a].length; b++)
{
if(boolArray[a][b] = true)
{
System.out.print("T");
}
else if(boolArray[a][b] = false)
{
System.out.print("F");
}
}
}
答案 0 :(得分:1)
这很糟糕:
if(boolArray[a][b] = true)
{
System.out.print("T");
}
else if(boolArray[a][b] = false)
{
System.out.print("F");
}
您正在使用赋值运算符=
而不是比较运算符==
您可以将其更改为
if(boolArray[a][b] == true)
//...
else if(boolArray[a][b] == false)
或更好
if(boolArray[a][b])
//...
else if(!boolArray[a][b])
甚至更好:
if(boolArray[a][b])
//...
else
答案 1 :(得分:0)
试试这个:
if(boolArray[a][b])
{
System.out.print("T");
}
else
{
System.out.print("F");
}
使用布尔值,你可以这样做
if(boolean field)
您使用=
分配代替==
比较。