2012-02-13 67 views
0

基本上,這peice的代碼似乎表現不同,當我移動斷點的Java布爾沒有斷點表現在if語句

int checker = something.length(); /* something is the value of an edittext */ 

    boolean badInput = false; 

    if(checker == 0) 
    { 
     badInput = true; 
    } 

    if(checker > 12) 
    { 
     badInput = true; 
    } 

*1 if(badInput = false) 
    { 
*2  /* A lot of 
       code to do 
       if the 
       input is GOOD */ 
    } 
    else 
    { 
      /* Alert that the input is BAD */ 
    } 

當我進入一個2位數到的EditText與第一斷點(1),badInput給出錯誤,因爲它應該。

這裏的問題是:當我做一模一樣只有第二個斷點(2),代碼進入到else聲明,並提醒,即使輸入是完全一樣的。

有人知道這可能是爲什麼嗎?

+0

說不上來,如果它關係到你的問題有斷點,但'如果(badInput =假)'可能應該是'如果(badInput ==假)',甚至更好,'if(!badInput)'。 – Mac 2012-02-13 10:49:14

回答

6

此:

if(badInput = false) 

應該是:

if(badInput == false) 

或者preferrably:

if (!badInput) 

首先是執行分配,不是比較。表達式badInput = false的總體結果也是分配的值(錯誤),因此它將永遠不會進入該if的正文。

通過輸入「帶有」斷點的數據並不十分清楚您的意思,但根本上問題出在您的代碼中。

1

你應該有:

if(!badInput) 

if(badInput==false) 

(第一個是更好)

1

簡單的拼寫錯誤錯誤,

if(badInput = false) 

應該

if(badInput == false) 

你想要一個比較不分配。

1

你用==運算符檢查布爾變量?!! 你必須檢查如下:

if(!badInput) //for false value 
    or 
if(badInput) //for true value