当我没有输入或按取消时,无法退出循环

时间:2012-10-14 01:54:12

标签: java

当我在输入中没有输入任何内容或按下取消时,我似乎无法退出循环。 有出路吗?

    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);
        }
    }

2 个答案:

答案 0 :(得分:0)

必须在循环之外初始化

last,但是当你输入任何内容或取消最后一个if语句的计算结果为false时,last没有设置为新值,所以它将继续使用前一个价值继续循环。

在评估最后一条if语句之前,您应该将last重置为null或空字符串。

答案 1 :(得分:0)

问题在于你的“打破循环”问题。条件(if input != null && input.length() > 0)仅在last被评估为true时为其分配新值,但输入任何内容都不会导致其评估为false,这意味着{的值{1}}未更改。

将以下内容添加到最后一个if块可能会修复它:

last

此外,输入一些不以问号结尾的内容应该打破循环。