我尝试了不同的方法来做到这一点,当我这样做时..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"); }}它告诉我它是否是回文...所以,它适用于我的一端,但不适用于用户端。我错过了什么
2 回答
汪汪一只猫
TA贡献1898条经验 获得超8个赞
问题是,您将输入的值分配给变量,first
然后将 的值分配first
给变量last
。您将布尔值声明为isPalindrome = first==last
( true ),这在这种情况下始终为真,这就是您得到“这是回文”的原因。在您说“有效”的第二个代码块中,是因为您声明了first = 1
and last = 5
,当您这样做时isPalindrome = first==last
(false),回文的值将始终为假,因此您会得到“这不是回文”输出。
我认为你需要做的是重写你的逻辑,这样你就可以详细说明你想做的过程。随意问一个后续问题。
呼唤远方
TA贡献1856条经验 获得超11个赞
在第一个中,用户输入一个分配给 的数字first
,然后您将其设置last
为对 的引用first
。由于 的真值isPalindrome
取决于 是否last == first
,因此它始终为真,因为您以这种方式对其进行编码。但是,这实际上并不能证明该数字是回文,因为例如,如果用户输入数字 56,则数字 56056 不是回文(反之为 65065)。
在第二个程序中,first
始终为 1,last
始终为 5,因此由于它们永远不相等,因此条件last == first
将始终为假。
您试图通过这些程序实现什么目标?没有一个测试用户输入是回文。首先尝试编写伪代码,如果您愿意,请在评论中。
添加回答
举报
0/150
提交
取消