Java 在else子句启动之前退出具有sentinel值的do循环

Java 在else子句启动之前退出具有sentinel值的do循环,java,do-loops,Java,Do Loops,我正在为学校的作业写一段代码。我已经完成了,它工作得很好,但有一件事困扰着我。如何在不打印非回文行的情况下退出do循环。我只知道这将是一个简单的解决方案,但似乎无法解决它。我在主类下面有一些其他的方法,但这在上下文中并不重要,所以我没有包括它 import java.util.Scanner; public class Palindrome { public static void main(String[] args) { String userPhrase;

我正在为学校的作业写一段代码。我已经完成了,它工作得很好,但有一件事困扰着我。如何在不打印非回文行的情况下退出do循环。我只知道这将是一个简单的解决方案,但似乎无法解决它。我在主类下面有一些其他的方法,但这在上下文中并不重要,所以我没有包括它

import java.util.Scanner;
public class Palindrome {

    public static void main(String[] args) {
        String userPhrase;
        Scanner in = new Scanner(System.in);
        do {
            userPhrase = "";
            System.out.print("Enter phrase (done to stop): ");
            userPhrase = in.nextLine();
            userPhrase = userPhrase.toLowerCase();
            userPhrase = delSpecialChar(userPhrase);
            if (palChecker(userPhrase)) {
                System.out.println("That is a Palindrome\n");
            } else {System.out.println("That is NOT a Palindrome\n");}
        } while (!userPhrase.equals("done"));
        in.close();
    }
下面是我进入时的样子:

Enter phrase (done to stop): done
That is NOT a Palindrome

程序终止

要退出循环,只需使用
break如果我输入done,它会退出,但我不想让不是回文的行显示upso我会像这样添加这个
if(userPhrase.equals(“done”){break;}else if(palChecker(userPhrase)){System.out.println(“那是回文”;}else{System.out.println(“那不是回文”;}
好的,我想出来了。非常感谢。我还在上学,所以像这样简单的事情会在我的脑海中飞过。我一直想知道,当你可以使用if break时,为什么会有一个循环中的条件。这似乎是违反直觉的,既然你这样解释,那就有道理了