回文Java:While和If / Else语句

时间:2018-06-23 05:22:51

标签: java while-loop reverse palindrome

无论输入什么,我的代码都会不断输出“ true”。我的代码未显示任何错误,我输入56作为输入,但仍显示“ true”。我很难弄清楚为什么。另外,我还是Java和Stack Overflow的新手。任何帮助,将不胜感激。

//回文验证

    temp = integer;
    while (integer > 0)
    {
        remainder = integer%10;
        reverse = reverse * 10 + remainder;
        integer=integer /10;
    }

    if (integer==reverse)

        System.out.println("True");
        else
        System.out.println("False");    

2 个答案:

答案 0 :(得分:1)

在您的程序中,当while循环完全执行integer时,变量值将变为零,这就是问题所在。 您需要将if (integer==reverse)更改为if (temp==reverse)

完整代码:

public class palindrom {
    public static void main(String[] args) {
        int integer = 122; //change this value according to your preference
        int temp = integer;
        int remainder;
        int reverse = 0;
        while (integer > 0){
            remainder = integer%10;
            reverse = reverse * 10 + remainder;
        integer=integer /10;
    }

    if (temp==reverse)
        System.out.println("True");
    else
        System.out.println("False");
    }
}

答案 1 :(得分:0)

您需要将START值与REVERSE进行比较。在您的代码中,(integer == reverse)将始终为FALSE,因为在while循环后,integer == 0。

object.name