2012-10-14 30 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; 
} 

此外,输入的东西,不以问号结尾应该打破循环。