为了账号安全,请及时绑定邮箱和手机立即绑定

回文Java:While和If / Else语句

回文Java:While和If / Else语句

蝴蝶不菲 2021-04-09 18:09:22
无论输入什么,我的代码都会不断输出“ 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 回答

?
一只斗牛犬

TA贡献1784条经验 获得超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");

    }

}


查看完整回答
反对 回复 2021-04-21
?
慕森卡

TA贡献1806条经验 获得超8个赞

您需要将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);


查看完整回答
反对 回复 2021-04-21
  • 2 回答
  • 0 关注
  • 154 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信