需要帮助 - Java If / Else

时间:2014-10-02 14:15:40

标签: java if-statement

我对Java很新,需要帮助我的If / Else语句。基本上我想这样做,如果这个人输入n或者没有做一件事,或者如果这个人输入y或是,那么做另一件事,如果这个人没有输入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");
    }

 }

}

1 个答案:

答案 0 :(得分:2)

您应该使用equals来比较字符串值,例如stringVar.equals("something")。 更好的是,将其"something".equals(stringVar)反转可以防止Nullpointerexceptions。

==比较几乎永远不会相等的指针(除非您正在比较字符串常量)。