嘿所有我想弄清楚我在做什么错在这里。我一直在使用NetBeans IDE制作一个用java编写的岩石剪刀游戏。我知道我已经看到很多关于这个问题的问题,但是在我的if else语句中,我试图让它打印出符合条件的一些语句。如果玩家1投掷石块并且玩家投掷任何东西(包括领带),那么它就是这样,但除此之外的其他东西不会在跑步时打印出语句。我的代码在下面,知道你们喜欢具体的问题和小部分的代码,但我觉得需要发布完整的代码来查看我出错的地方。如果这是有道理的!谢谢你的帮助。如果其他块不打印出岩石纸剪刀游戏的声明
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String personPlay; //Player A -- "R", "P", or "S"
String secondUser; //Player B
Scanner scan = new Scanner(System.in);
System.out.println("Player 1Please enter your name");
String name1;
name1 = scan.next();
System.out.println("Hello " + name1);
System.out.println("Hello Player 2");
System.out.println("Player 2 Please enter your name");
String name2;
name2 = scan.next();
System.out.println("Hello "+name2);
System.out.println(name1 + " enter r for Rock, p for Paper, s for Scissors: "); //Get player's play -- note that this is stored as a string
personPlay = scan.next();
personPlay = personPlay.toLowerCase();
System.out.println(name2 + " enter r for Rock, p for Paper, and s for Scissors");
secondUser = scan.next();
secondUser = secondUser.toLowerCase();
if (personPlay.equals(secondUser)) {
System.out.println("It's a tie!");
} else if (personPlay.equals("r")) {
if (secondUser.equals("s")) {
System.out.println("Rock beats scissors! Victory to "+name1);
} else if (secondUser.equals("p")) {
System.out.println("Paper beats Rock! Victory to "+name2);
} if (personPlay.equals("p")) {
if (secondUser.equals("s")) {
System.out.println("Scissors cut Paper! Victory to "+name2);
} else if (secondUser.equals("r")) {
System.out.println("Paper covers rock! Victory to "+name1);
} if (personPlay.equals("s")) {
if (secondUser.equals("p")) {
System.out.println("Scissors beat paper! Victory to "+name1);
}
} else if (secondUser.equals("r")) {
System.out.println("Rock beats Scissors! Victory to "+name2);
}
}
}
}
}
您应该将其分解为多个方法,并且可以在'if'语句中组合条件以提高可读性。 – user489041
让你的IDE重新格式化你的代码。也许有了正确的缩进,你就会明白逻辑出错的地方。 – RealSkeptic
学习使用调试器。浏览每一行,看看它出错的地方。 – rghome