Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.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 If/Else_Java_If Statement - Fatal编程技术网

需要帮助-Java If/Else

需要帮助-Java If/Else,java,if-statement,Java,If Statement,我对Java是相当陌生的,我的If/Else语句需要帮助。基本上,我想这样做,如果人们输入n或no做一件事,或者如果人们输入y或yes,做另一件事,如果人们没有输入n、no、yes或y,那么做另一件事。但无论用户输入什么,它都表现为他们没有输入n、no、yes或y。我怎样才能解决这个问题 这是我目前的代码: public class Main { public static void main (String[] args) { Scanner userInputScanner =

我对Java是相当陌生的,我的If/Else语句需要帮助。基本上,我想这样做,如果人们输入n或no做一件事,或者如果人们输入y或yes,做另一件事,如果人们没有输入n、no、yes或y,那么做另一件事。但无论用户输入什么,它都表现为他们没有输入n、no、yes或y。我怎样才能解决这个问题

这是我目前的代码:

public class Main 
{
 public static void main (String[] args)
 {
    Scanner userInputScanner = new Scanner(System.in);
    String [] charName = {"John", "Bob", "Sam"};
    Random random = new Random();
    int charNameChoice = random.nextInt(charName.length);
    System.out.println("Random char selected: " + charName[charNameChoice]);
    System.out.println("Y N Question1");
    System.out.println("You can input y, yes, n or no");
    String questionOneAnswer = userInputScanner.nextLine();
    if (questionOneAnswer == "n" || questionOneAnswer == "no")
    {
        System.out.println("I disagree");
    }
    else if (questionOneAnswer == "y" || questionOneAnswer == "yes")
    {
        System.out.println("I agree");
    }
    else
    {
        System.out.println("Invalid");
    }

 }

}

您应该使用
equals
来比较字符串值,比如
stringVar.equals(“某物”)
。 更好的是,将其反转为“something”.equals(stringVar)可以防止NullPointerException


=
比较指针,指针几乎从来都不相等(除非您比较的是字符串常量)。

感谢您让我知道简而言之-
=
比较的是对象引用,而不是对象本身的内容。您应该使用
.equals()
来实现这一点。