Java 如果语句运行不正常

Java 如果语句运行不正常,java,Java,嗨,斯塔克尔斯 System.out.print("Enter your first name: "); firstName = keyboard.nextLine(); if(firstName!="Mike"&&firstName!="mike"&&firstName!="Diane"&&firstName!="diane") { System.out.println("derp"); } else

嗨,斯塔克尔斯

      System.out.print("Enter your first name:  ");
  firstName = keyboard.nextLine();
  if(firstName!="Mike"&&firstName!="mike"&&firstName!="Diane"&&firstName!="diane")
  {
      System.out.println("derp");
  }
  else
      discount=true;
然而,结果是:

Enter your first name:  diane
derp
如果有人能告诉我我做错了什么,那就太好了,非常感谢

public class Test{

    public static void main(String[] args) {

        System.out.print("Enter your first name:  ");
        Scanner keyboard = new Scanner(System.in);
        String firstName = keyboard.nextLine();
        if (!(firstName.equalsIgnoreCase("mike") || (firstName.equalsIgnoreCase("diane")))) {
            System.out.println("derp");
        } else
            System.out.println("true");
    }
}
输出

Enter your first name:  diane
true

我试着把语句的条件弄乱了,如果条件需要
|
而不是
&&
,那就没有用了。另外,对于您的具体情况-
!firstName.equalsIgnoreCase(“mike”)&&!firstName.equalsIgnoreCase(“diane”)
您需要使用
.equals()
方法。==还有!=检查实例,而不是字符串的内容。@PeterJi-answer已发布供您接受