回文Java:While和If / Else语句

无论输入什么,我的代码都会不断输出“ 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");    


蝴蝶不菲
浏览 155回答 2
2回答

一只斗牛犬

在您的程序中,当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");    }}

慕森卡

您需要将START值与REVERSE进行比较。在您的代码中,(integer == reverse)将始终为FALSE,因为在while循环后,integer == 0。        int integer = 12344321;        int remainder, reverse = 0;        int start = integer;        while (integer > 0)        {            remainder = integer%10;            reverse = reverse * 10 + remainder;            integer = integer / 10;        }        if (start==reverse)            System.out.println("True");        else            System.out.println("False");        System.out.println(reverse);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java