gpt4 book ai didi

java - 使用 JOptionPane 的 Java 的 If Else 语句

转载 作者:行者123 更新时间:2023-12-02 11:12:20 24 4
gpt4 key购买 nike

我是编程新手,正在学习 Java。我正在尝试使用 JOptionPane 来处理 if/else 语句。除了声明之外,一切正常。我只得到一句话“停下来加油!”无论输入什么答案(是或否)。

如有任何帮助,我们将不胜感激!

//This program determine if I have to stop for gas on the way in to work. 

import javax.swing.JOptionPane;
import java.util.*;

public class GasIndicator
{

public static void main(String[] args)
{
String answer;
String outputStr1;
String outputStr2;

answer =
JOptionPane.showInputDialog ( "Do you have at least an eighth tank of gas? yes or no " );



outputStr1 = "You can drive straight to work";
outputStr2 = "Stop and get gas!";

if (answer == "yes")

JOptionPane.showMessageDialog(null, outputStr1, "Gas", JOptionPane.INFORMATION_MESSAGE);


else
JOptionPane.showMessageDialog(null, outputStr2, "Gas", JOptionPane.INFORMATION_MESSAGE);


System.exit(0);


}
}

最佳答案

if (answer == "yes")

比较String对象时,需要使用equals方法。

示例

if(answer.equals("yes")) {
// Do code.
}

注意:根据评论的建议,按如下方式构造 if 语句会更安全:

if("yes".equals(answer)) {
// Do code.
}

这不会通过 NullPointerException 导致 answer 等于 null

说明

在 Java 中,当使用 == 运算符比较 Object 类型的子类时,它将检查这两个对象是否是对同一个对象的引用。他们不检查该对象的。由于您要比较值,因此需要使用 equals 方法。

它如何应用于您的代码

嗯,让我们看看吧。您可以从 InputDialog 的响应中获取 String 类型。所以这是一个String。然后,您尝试将其与“yes”进行比较。这就是所谓的字符串文字,因此这意味着在两个、即两个不同对象中创建一个对象。

请记住,对于对象而言,您正在比较引用类型;不是对象值,所以这就是为什么它总是导致 false

关于java - 使用 JOptionPane 的 Java 的 If Else 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21416886/

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