Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.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 陷入了一个while循环,试图让用户输入某些单词?_Java - Fatal编程技术网

Java 陷入了一个while循环,试图让用户输入某些单词?

Java 陷入了一个while循环,试图让用户输入某些单词?,java,Java,我正在制作一个简单的石头、布、剪刀程序。由于某些原因,即使用户输入了正确的术语之一,该while循环也会继续循环。有人能解释为什么会这样吗 public static String userChoice(){ String userChoice = ""; while(userChoice != "rock" && userChoice != "paper" && userChoice != "scissors"){ userCho

我正在制作一个简单的石头、布、剪刀程序。由于某些原因,即使用户输入了正确的术语之一,该while循环也会继续循环。有人能解释为什么会这样吗

public static String userChoice(){
    String userChoice = "";
    while(userChoice != "rock" && userChoice != "paper" && userChoice != "scissors"){
        userChoice = JOptionPane.showInputDialog("Rock, Paper, or Scissors?");

        JOptionPane.showMessageDialog(null, "Invalid input!");
    }

    return userChoice;
}
无法将字符串与标准比较器进行比较,您需要使用someString.EqualSignoreCaseSometherString

编辑:
在某些罕见的情况下,您可以使用标准比较器,但这不是其中之一。

尝试使用!userChoice.equalignorecasetrack而不是userChoice!=谢谢你。成功了!我甚至不知道这种方法的存在。当比较字符串时,这将使它变得更加容易@ankur singhal先生,还有一个问题。当用户输入石头、布或剪刀时,它仍然完成循环。我认为一旦while循环的参数不再满足,它就会跳出循环。我是否必须为无效消息部分创建条件语句?还是有更简单的方法不使用==或!=对于字符串。@UDS13将进入循环内部,直到条件不满足为止。一旦条件满足,即用户输入石头、布或剪刀,它将不会进入循环内部,并在while循环外部执行语句。我希望它是清楚的。不能比较吗?有时候你可以。这还不清楚answer@whiletrue是的,你可以,但只有在非常罕见的情况下,如果你在其中一种情况下,你不会去stackoverflow看看你是否可以。