简单回文。

我尝试了不同的方法来做到这一点,当我这样做时..


import java.util.*;

public class Palindrome {

 public static void main(String[] args) {

  Scanner in = new Scanner(System.in);


  System.out.print("Enter number");

  int number = in .nextInt();

  int first = number

  int middle = 0;

  int last = first;

  boolean isPalindrome = last == first;


  if (isPalindrome) {

   System.out.print("This is a palindrome");

  } else

   System.out.print("This is not a palindrome");

 }

}

它吐出“这是一个回文”。请注意,我不能使用循环。这不应该工作吗?


当我这样做时它有效......


import java.util.*;

public class Palindrome {

 public static void main(String[] args) {

  Scanner in = new Scanner(System.in);


  System.out.print("Enter number");

  int first = 1;

  int middle = 0;

  int last = 5;


  boolean isPalindrome = last == first;


  if (isPalindrome) {

   System.out.print("This is a palindrome");

  } else

   System.out.print("This is not a palindrome");

 }

}

它告诉我它是否是回文...所以,它适用于我的一端,但不适用于用户端。


我错过了什么


ITMISS
浏览 169回答 2
2回答

汪汪一只猫

问题是,您将输入的值分配给变量,first然后将 的值分配first给变量last。您将布尔值声明为isPalindrome = first==last( true ),这在这种情况下始终为真,这就是您得到“这是回文”的原因。在您说“有效”的第二个代码块中,是因为您声明了first = 1and last = 5,当您这样做时isPalindrome = first==last(false),回文的值将始终为假,因此您会得到“这不是回文”输出。我认为你需要做的是重写你的逻辑,这样你就可以详细说明你想做的过程。随意问一个后续问题。

呼唤远方

在第一个中,用户输入一个分配给 的数字first,然后您将其设置last为对 的引用first。由于 的真值isPalindrome取决于 是否last == first,因此它始终为真,因为您以这种方式对其进行编码。但是,这实际上并不能证明该数字是回文,因为例如,如果用户输入数字 56,则数字 56056 不是回文(反之为 65065)。在第二个程序中,first始终为 1,last始终为 5,因此由于它们永远不相等,因此条件last == first将始终为假。您试图通过这些程序实现什么目标?没有一个测试用户输入是回文。首先尝试编写伪代码,如果您愿意,请在评论中。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java