陷入Do-While循环

时间:2014-10-19 18:23:12

标签: java infinite-loop do-while

Boolean answer = true;
while(answer == true){
    String ans;

    do{
        System.out.println("\nWould you like to enter another student's record?
        (Enter Y or N)");
        ans = in.next().toUpperCase();
        }
        while((!ans.equals("Y")) || (!ans.equals("N")));
        in.close();

        if(ans.equals("Y")){
            answer = true;
        } //End of YES if statement   

        else{
            answer = false;
        } //End of NO statement

    } //End of While Statement for Main program

好的显而易见的简要说明:我根据if“answer = true”在循环上设置程序。但是,do-while循环似乎不接受“Y”或“N”并继续循环。为什么这段代码不起作用?

2 个答案:

答案 0 :(得分:3)

更改此

(!ans.equals("Y")) || (!ans.equals("N"))

进入这个:

(!ans.equals("Y")) && (!ans.equals("N")))

这就是你被困的原因!

答案 1 :(得分:2)

(!ans.equals("Y")) || (!ans.equals("N"))永远是真的

您可能想要使用while((!ans.equals("Y")) && (!ans.equals("N")));