2012-10-14 29 views
-1

當我在輸入中沒有輸入任何內容或者我按取消時,我似乎無法走出循環。 有沒有出路?當我不輸入任何東西或按取消

While (last == '?'){ 
     input = (int)(Math.random()*2); 
     if (number == 1){ 
      answer = "Nice"; 
     } 
     if (number == 2){ 
      answer = "Okay"; 
     } 
     System.out.println("The answer: " + answer); 
     input = JOptionPane.showInputDialog(null, "Ask a question. (Remember the?)"); 
     if (input != null && input.length() > 0){ 
      last = input.charAt(input.length() - 1); 
     } 
    } 

回答

0

last必須在循環外初始化,但是當你進入什麼或取消最後一個if語句計算爲false,以便last沒有設置爲一個新值,因此將繼續使用它繼續以前的值循環。

在評估最後一條if語句之前,您應該將last重置爲null或空字符串。

0

問題是,當它的評估,以true,那你的「磨合的循環」條件(if input != null && input.length() > 0)只分配一個新的價值last - 但進入什麼原因引起的,以評估爲false,意味着last值不變。

添加以下到最後,如果塊可能會解決它:

else { 
    break; 
} 

此外,輸入的東西,不以問號結尾應該打破循環。