0

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");
    }
  }
}
4

2 に答える 2

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 
于 2012-12-04T14:51:11.583 に答える
0

これを試して:

    if(boolArray[a][b])
    {
      System.out.print("T");
    }
    else
    {
      System.out.print("F");
    }

ブール値を使用すると、次のことができます

if(boolean field)

=比較の代わりに代入を使用しました==

于 2012-12-04T14:51:02.523 に答える