我是新来的Java并使用嵌套的if语句编写两个玩家的摇滚/纸/剪刀比赛任务。只有一半我的结果打印结果
该程序将所有组合的作品,当我使用“否则,如果(”石头“.equals(PLAYER1)&&‘纸’.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();
}
}
我预计投入每个组合的输出,但剪刀石头VS,摇滚VS剪刀和纸VS摇滚不产生任何输出到控制台。
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...
将被跳过。为了解决这个问题,只是做所有的检查在一个块player2的:
else if ("rock".equals(player1))
{
if ("paper".equals(player2))
{
System.out.println("Paper covers rock - Player 2 wins!");
}
else if ("scissors".equals(player2))
{
System.out.println("Rock breaks scissors - Player 1 wins!");
}
}
你也应该了解switch
声明,可以提供一种替代解决问题的方法。