当我在输入中没有输入任何内容或按下取消时,我似乎无法退出循环。 有出路吗?
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 :(得分:0)
last
,但是当你输入任何内容或取消最后一个if语句的计算结果为false时,last
没有设置为新值,所以它将继续使用前一个价值继续循环。
在评估最后一条if语句之前,您应该将last
重置为null或空字符串。
答案 1 :(得分:0)
问题在于你的“打破循环”问题。条件(if input != null && input.length() > 0
)仅在last
被评估为true
时为其分配新值,但输入任何内容都不会导致其评估为false,这意味着{的值{1}}未更改。
将以下内容添加到最后一个if块可能会修复它:
last
此外,输入一些不以问号结尾的内容应该打破循环。