Java作业。 boolean 逻辑有问题

标签 java

上我的第一堂 Java 课,我陷入了愚蠢的困境。我正在做回文项目。这个逻辑看起来不错。无论哪种情况,都会显示 True。我做错了什么?

调用:

boolean result = check(input);

或者在方法本身中:

public static void display(boolean result, String palindrome)
{
    if (result = true)
    {
        JOptionPane.showMessageDialog(null, palindrome
                + " is a palindrome.");
    } else
        JOptionPane.showMessageDialog(null, palindrome
                + " is not a palindrome.");

}

完整代码如下: 导入 javax.swing.JOptionPane;

public class Palindrome
{

public static void main(String args[])

{
    // declare variables

    // call methods
    String input = retrieveInput();
    boolean result = check(input);
    display(result = false, input);
    finish();
}

// Accepts and validates input
public static String retrieveInput()
{
    // declare variables
    int length;
    String palindrome = null;
    boolean done = false;
    while (!done)
    {
        try
        {
            // user input
            palindrome = JOptionPane.showInputDialog(null,
                    "Please enter a 5 digit integer:");
            length = palindrome.length();

            // data validation
            if (length != 5)
            {
                throw new NumberFormatException();
            } else
                done = true;
        }

        catch (NumberFormatException e)
        {
            JOptionPane.showMessageDialog(null,
                    "Error. Please enter a 5 digit integer", "Error",
                    JOptionPane.INFORMATION_MESSAGE);
        }
    }
    return palindrome;
}

public static Boolean check(String palindrome)
{
    // determine if palindrome

    int left = 0;
    int right = palindrome.length() - 1;

    while (left < right)
    {
        if (palindrome.charAt(left) != palindrome.charAt(right))
            return false;

        left++;
        right--;
    }

    return true;

}

// The output method displays commission and sales
public static void display(boolean result, String palindrome)
{
    if (result = true)
    {
        JOptionPane.showMessageDialog(null, palindrome
                + " is a palindrome.");
    } else
        JOptionPane.showMessageDialog(null, palindrome
                + " is not a palindrome.");

}

// finish() method exits program
public static void finish()
{
    System.exit(0);
}

}

最佳答案

 if (result = true)

result设置为true并对其进行评估(同样,作为true)。使用:

if(result==true)

if(result)

相反。前者是大多数值比较的语法,后者仅适用于 boolean 值。

关于Java作业。 boolean 逻辑有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18936856/

相关文章:

java - 需要 DropWizard 服务 Assets 帮助

java - Vaadin 7 快捷监听器

java - swagger文件默认属性的控制

java - 如何在多传感器网络中形成命令?

java - 如何转义作为参数传递给 java -jar 的字符串中的 < >?

c# - Java和C#传值区别

Java Android - 创建我自己的类

java - 发生评估根项目> com.android.application找不到插件

java - AtomicBoolean 锁在哪里?

java - 使用多列的参数化 IN 子句