gpt4 book ai didi

java - boolean 值始终输出 true

转载 作者:行者123 更新时间:2023-12-01 08:02:00 26 4
gpt4 key购买 nike

我有一个类来测试回文。在我的循环中,它比较每个字母以查看它们是否匹配,如果不匹配,则应该使 boolean 变量为 false,反之亦然。现在我已经对其进行了大量测试,我可以看到,如果我正确地输入回文,它实际上会进入正确的 if 语句,从而使变量为 true。如果它遇到一对不匹配的字母,它应该将 boolean 变量声明为 false 并从循环中中断,它实际上是正确执行的。但无论如何,当我尝试使用 boolean 变量来确定返回的响应时, boolean 变量始终为 true,但我不知道为什么。

 is a palindrome!  Hooray!

始终是输出,即使循环转到 false boolean 值并中断,这让我感到困惑。

public class Palindrome
{
public static void main(String[] args)
{
//is it true?
boolean truth;
//create stack and queue
Stack s = new Stack();
Queue q = new LinkedList();
//scanner
Scanner input = new Scanner(System.in);
//get string
System.out.println("Enter a palindrome, or don't, I'll know:");
String palin = input.nextLine();
//remove whitespace
palin = palin.replaceAll("\\s+","");
System.out.println(palin);
//remove puncuation
palin = palin.replaceAll("\\p{P}", "");
System.out.println(palin);
//set lowercase
palin = palin.toLowerCase();
System.out.println(palin);

//feed string to stack and queue
for(int i = 0; i < palin.length(); i++)
{
s.push(palin.charAt(i));
q.add(palin.charAt(i));
}
System.out.println(s);
System.out.println(q);
while(!s.isEmpty() && !q.isEmpty())
{
Object sTemp = s.pop();
Object qTemp = q.poll();
String sString = sTemp.toString();
String qString = qTemp.toString();
System.out.println(sString + qString);
System.out.println("looptest");
if(sString.equals(qString))
{
truth = true;
}
else
{
truth = false;
break;
}
}
if(truth = true)
{
System.out.println(palin + " is a palindrome! Hooray!");
}
else
{
System.out.println(palin + " is no palindrome! You lied!");
}
}
}

最佳答案

用这一行

if(truth = true)

您正在使用 =true 分配给 truth,而您可能想要使用 == 进行比较。它已经是一个 boolean 值,因此只需将其作为条件即可。

if (truth)

关于java - boolean 值始终输出 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24792877/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com