1

まず第一に、私は誰にも「宿題をしなさい」と言っているわけではありません。プロセスを繰り返し続ける方法について少し助けが必要です。これは私が以下で行ったプログラムであり、テスタークラスがあります。

クラス:

class RecursivePalindrome {
    public static boolean isPal(String s)
    {
        if(s.length() == 0 || s.length() == 1)
            return true;
        if(s.charAt(0) == s.charAt(s.length()-1))
            return isPal(s.substring(1, s.length()-1));
        return false;
    }
}

次に、main メソッドを持つテスター クラス:

public class RecursivePalindromeTester {   
    public static void main(String[] args)
    {
        RecursivePalindrome  Pal = new RecursivePalindrome ();

        boolean quit = true;
        Scanner in = new Scanner(System.in);
        System.out.print("Enter a word to test whether it is a palindrome or not(press quit to end.): ");
        String x = in.nextLine();
        while(quit) {
            boolean itsPal = Pal.isPal(x);
            if(itsPal == true){
                System.out.println(x + " is a palindrome.");
                quit = false;
            }
            else if (x.equals("quit")) {
                quit = false;
            }
            else {
                quit = false;
                System.out.println(x + " is not a palindrome.");
            }
        }
    }
}

このプログラムは、文字が回文かどうかを調べます。私はすべての計算とものを手に入れましたが、ユーザーに入力を求め続け、ユーザーが入力するたびにそれが回文語かどうかを言うにはどうすればよいですか。

4

2 に答える 2

3

ユーザー入力を求めてそれを読み取る行を移動するだけです。

System.out.print("Enter a word to test whether it is a palindrome or not(press quit to end.): ");
String x = in.nextLine();

...あなたのループ、例えば直後に

while (quit) {

...ライン。


補足:quitブール値の奇妙な名前のように思えます。これは、 の場合、続行をtrue意味します。:-)

于 2013-02-10T16:24:41.443 に答える
1

別の while ループでラップするだけです。

continueステートメントとbreakステートメントを調べます。これらは、ここで情報を探しているループに非常に役立ちます。public class RecursivePalindromeTester {

public static void main(String[] args) {
        RecursivePalindrome  Pal = new RecursivePalindrome ();

        Scanner in = new Scanner(System.in);
        while(true){
             System.out.print("Enter a word to test whether it is a palindrome or not(press quit to end.): ");
             String x = in.nextLine();
                boolean itsPal = Pal.isPal(x);
                if(itsPal == true){
                    System.out.println(x + " is a palindrome.");
                } else if (x.equals("quit")) {
                    break;
                } else {
                    System.out.println(x + " is not a palindrome.");
                }
        }
    }
}
于 2013-02-10T16:29:22.750 に答える