2017-01-04 178 views
-1

我有一個任務來爲我的類創建一個atm程序。除了這一個問題,我主要完成了一切。 if語句中的變量無法識別。我想創建一些id檢查,將變量賦值爲true的代碼不被識別,賦值爲false的else語句工作正常。下面是代碼:「if」不被識別的Java變量

boolean k; 
String trf = JOptionPane.showInputDialog("Insert [ID <space> Amount]:"); 
StringTokenizer tr = new StringTokenizer(trf); 
tid = tr.nextToken(); 
int tam = Integer.parseInt(tr.nextToken()); 
for(int x=0;x<4;x++){ 
    if (t[x].account.getId().equals(tid)){ 
     k = true; 
     //transfer code here[...] 
     break; 
    } 
    else{ 
     k=false; 
    } 
    if(!k){ 
     JOptionPane.showMessageDialog(null, "ID not found"); 
    } 
} 

我讀到這樣一些其他的話題之前一個之前說,如果定義變量,但我不能這樣做,在我的情況,因爲我需要先檢查值。提前致謝。

+0

我想你可能需要包括「傳輸代碼」參數以便你的問題有意義。我不知道你確切的問題是什麼。 –

+0

它不僅用於傳輸,而且還用於登錄,所以這是一般的代碼 – Dizz

+0

你得到的錯誤是什麼?原因對我來說,它運行得很好:http://ideone.com/SD8Y4K – Abhineet

回答

1

您可能能夠做到這一點:

boolean k = false; 
String trf = JOptionPane.showInputDialog("Insert [ID <space> Amount]:"); 
StringTokenizer tr = new StringTokenizer(trf); 
tid = tr.nextToken(); 
int tam = Integer.parseInt(tr.nextToken()); 
for(int x=0;x<4;x++){ 
    if (t[x].account.getId().equals(tid)){ 
     k = true; 
     //transfer code here[...] 
     break; 
    } 
} 
if(!k){ 
    JOptionPane.showMessageDialog(null, "ID not found"); 
} 
+0

它說「變量k可能沒有被初始化」,如果我把最後一個如果在循環外 – Dizz

+0

看看我的代碼。我已經初始化了。布爾值k = false;你有沒有檢查那條線? – Nimesh

+0

對不起,我忘了補充一點。其工作感謝 – Dizz

1

轉讓的最後if statementfor循環

for(int x=0;x<4;x++){ 
    if (t[x].account.getId().equals(tid)){ 
     k = true; 
     //transfer code here[...] 
     break; 
    } 
    else{ 
     k=false; 
    } 

} 
if(!k){ 
     JOptionPane.showMessageDialog(null, "ID not found"); 
    } 

如果第一if被評估爲true這是寫在最後陳述的方式將不被執行,由於break

+0

它表示「變量k可能尚未初始化」 – Dizz

+0

@Dizz初始化'k'爲'false'以擺脫警告。然後你也可以移除'if'的'else'部分。 –

+0

@KlasLindbäck是的,它的工作謝謝 – Dizz