我正在制作一个简单的石头剪刀游戏,我想在那里做一个if语句,如果用户输入除了摇滚,纸张,剪刀之外的一个单词,它说无效的选择,我试过" ||&#34 ;我也试过"&&"。
if(userChoice.equalsIgnoreCase("Scissors") && ("Paper") && ("rock")) {
System.out.println("Invalid choice. Ending program.");
// Exit program
Main.main(args);
}
答案 0 :(得分:1)
if(!(userChoice.equalsIgnoreCase("Scissors") || userChoice.equalsIgnoreCase("Paper") || userChoice.equalsIgnoreCase("rock")))
{
System.out.println("Invalid choice. Ending program.");
// Exit program
Main.main(args);
}
答案 1 :(得分:1)
您可以使用正确选择的集合并检查用户选择是否在其中
List<String> correctChoices = Arrays.asList("rock","paper","scissors");
...
if (!correctChoice.contains(userChoice.toLowerCase()){
//invalid input
}
要提高contains
方法的性能,您可以使用HashSet而不是list
Set<String> correctChoices = new HashSet<>(Arrays.asList("rock","paper","scissors"));
答案 2 :(得分:0)
这应解决问题:
if(!userChoice.equalsIgnoreCase("Scissors") && !userChoice.equalsIgnoreCase("Paper") && !userChoice.equalsIgnoreCase("rock"))
{
System.out.println("Invalid choice. Ending program.");
// Exit program
Main.main(args);
}
在比较原始数据类型的情况下,使用!String_name.equalsIgnoreCase(String s)
与!=
相同,但显然不能在字符串上使用它,因为使用!=
您只需评估是否它们不是同一个对象,永远都是假的。
答案 3 :(得分:0)
if(!(userChoice.equalsIgnoreCase("Scissors") || userChoice.equalsIgnoreCase("Paper") || userChoice.equalsIgnoreCase("rock"))
答案 4 :(得分:0)
if(!userChoice.equalsIgnoreCase("Scissors") && !userChoice.equalsIgnoreCase("Paper") && !userChoice.equalsIgnoreCase("rock")) {
System.out.println("Invalid choice. Ending program.");
// Exit program
Main.main(args);
}
&& ("Paper")
的语法无效,只允许使用布尔类型。你要检查的是,选择不等于“剪刀”,不等于“纸”,不等于“摇滚”。
当然,这不是唯一的方法,因为你可以使用否定二进制逻辑来切换true,使用false和AND切换为OR。
答案 5 :(得分:0)
简明的方法是使用switch
语句。
switch( userChoice.toLowerCase() ) {
case "scissors":
case "paper":
case "rock":
// Continue
break;
default:
System.out.println("Invalid choice. Ending program.");
System.exit(1);
break;
}
答案 6 :(得分:0)
FROM phusion/baseimage:latest
然后按照以下方式进行检查:
Enum Possibilities {
ROCK,
PAPER,
SCISSORS;
public static boolean isInPossibilities(String input) {
for (Possibilities possibilitie: values()) {
if (possibilitie.name().equalsIgnoreCase(input)) {
return true;
}
}
return false
}
}
这是您特定代码的解决方案。但是对于最适合标题的答案,你可以使用Porz答案。