【发布时间】:2019-06-28 19:38:15
【问题描述】:
我是 Java 新手,我的任务是使用嵌套的 if 语句编写一个两人摇滚/纸/剪刀游戏。我的结果只有一半是打印结果
当我使用 "else if ("rock".equals(player1) && "paper".equals(player2))" 而不是嵌套的 if 语句时,该程序适用于所有组合,但嵌套 ifs 是专栏。
Scanner in = new Scanner(System.in);
System.out.print("Player 1, please choose rock, paper, or scissors: ");
String player1 = in.next();
System.out.print("Player 2, please choose rock, paper, or scissors: ");
String player2 = in.next();
player1 = player1.toLowerCase();
player2 = player2.toLowerCase();
if (player1.equals(player2))
{
System.out.println("It's a tie!");
}
else if ("rock".equals(player1))
{
if ("paper".equals(player2))
{
System.out.println("Paper covers rock - Player 2 wins!");
}
}
else if ("rock".equals(player1))
{
if ("scissors".equals(player2))
{
System.out.println("Rock breaks scissors - Player 1 wins!");
}
}
else if ("paper".equals(player1))
{
if ("scissors".equals(player2))
{
System.out.println("Scissors cut paper - Player 2 wins!");
}
}
else if ("paper".equals(player1))
{
if ("rock".equals(player2))
{
System.out.println("Paper covers rock - Player 1 wins!");
}
}
else if ("scissors".equals(player1))
{
if ("paper".equals(player2))
{
System.out.println("Scissors cut paper - Player 1 wins!");
}
}
else if ("scissors".equals(player1))
{
if ("rock".equals(player2))
{
System.out.println("Rock breaks scissors - Player 2 wins!");
}
}
else
{
System.out.println("Invalid input. Please try again using rock, paper, or scissors");
}
in.close();
}
}
我希望每个输入组合都有一个输出,但剪刀与石头、石头与剪刀、纸与石头不会向控制台输出任何输出。
【问题讨论】:
-
你有两次
else if ("paper".equals(player1)),不会输入两次,只会输入第一次。您需要将嵌套的if移动到第一个else if ("paper".equals(player1))下
标签: java