2012-12-04 38 views
0

我遇到了我的2維布爾數組的問題。 (或者可能是打印出值的邏輯)。我將數組中的所有值設置爲false,然後再將值輸出到屏幕。當我將它們打印出來時,它們都是真實的。Java 2D維布爾數組值

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

'x'和'y'的值是什麼?發佈完整代碼 –

+3

您在'if'條件下使用'=',而不是'==' – jlordo

回答

0

試試這個:

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

隨着布爾就可以像

if(boolean field) 

您已經使用=分配新建分配FY代替==比較。

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