Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 布尔值应用不正确_Java_Boolean - Fatal编程技术网

Java 布尔值应用不正确

Java 布尔值应用不正确,java,boolean,Java,Boolean,好的,我有一个程序,应该取客户的名字,不管名字中的字母是大写还是小写,如果是Mike或Diane,它会将折扣设置为true,然后应用折扣。默认情况下,折扣=false 下面是获取名称并将折扣设置为true: if (firstName == "Mike" || firstName == "Diane") { discount = true; } 稍后,当我尝试应用折扣并降低成本时,这里是: if (discount == true) { System.out.p

好的,我有一个程序,应该取客户的名字,不管名字中的字母是大写还是小写,如果是Mike或Diane,它会将折扣设置为true,然后应用折扣。默认情况下,折扣=false

下面是获取名称并将折扣设置为true:

if (firstName == "Mike" || firstName == "Diane")
  {
     discount = true;
  }
稍后,当我尝试应用折扣并降低成本时,这里是:

if (discount == true)
  {
     System.out.println("You are eligible for a $2.00 discount!");
     cost = cost - (2.00);
  }
然而问题是,当我使用Mike或Diane时,无论是否资本化,它都不会对价格应用折扣。它编译并运行,只是不应用折扣。

使用.equals。。。要比较字符串值,请执行以下操作:

==比较Java对象的引用。使用==来比较基本数据类型值(例如boolean、int、double等)是非常好的

如果要忽略字符的大小写,请使用.equalsIgnoreCase…:

您不应该使用==引用相等来确定字符串相等,幸运的是有一个方法

==比较字符串的引用。您可以使用equals:

解决方案:

如果firstName.equalsIgnoreCaseMike | | firstName.equalsIgnoreCaseDiane { 折扣=真; } 提示:


不过,最好是编写Mike.equalsIgnoreCasefirstName而不是firstName.equalsIgnoreCaseMike,因为您可以确定Mike不是null。firstName.equalsIgnoreCaseMike可以在firstName为null时引发NullPointerException。

您可以使用equalIgnoreCase方法

"Mike".equalsIgnoreCase(firstName)


使用String的equals方法来比较字符串值,而不是==运算符。1看一下。2如果折扣=true,则不要使用。就写成我的折扣吧。这样你就永远不会犯“如果折扣=真”这样的错误。不要忽略大小写。是的,他应该使用你在答案中给出的方法。我编辑我的帖子,谢谢。这不是不区分大小写的。
"Mike".equalsIgnoreCase(firstName)
boolean discount = ("Mike".equalsIgnoreCase(firstName) || 
    "Diane".equalsIgnoreCase(firstName));
"Mike".equalsIgnoreCase(firstName)
if(firstName.equalsIgnoreCase("Mike") || firstName.equalsIgnoreCase("Diane"))
    {
        discount = true;
    }