我已经对Java感兴趣了大约2个月,因为我在网上完成了一些课程,我正在尝试为岩石剪刀创建游戏。我希望游戏能够使用for
循环能够运行5次,尽管我在循环循环时遇到了困难。它不断宣布获胜者而不是重复比赛?
import java.util.Scanner;
import java.io.*;
public class Part2
{
public static void main (String[]args)
{
Scanner scan = new Scanner(System.in);
String userInput1 = " ";
char player1Input;
String userInput2 = " ";
char player2Input;
for(int i = 0; i < 5; i++) //Loop for game
{
System.out.println("Player 1: Please Enter e.g R for Rock:");
System.out.println("R.Rock");
System.out.println("P.Paper");
System.out.println("S.Scissors");
userInput1 = scan.next();
player1Input = userInput1.charAt(0);
System.out.println("Player 2: Please Enter e.g S for Scissors");
System.out.println("R.Rock");
System.out.println("P.Paper");
System.out.println("S.Scissors");
userInput2 = scan.next();
player2Input = userInput2.charAt(0);
}
switch(player1Input)
{
case 'R': System.out.println ("Player 1:Rock");
switch(player2Input)
{
case'R' : System.out.println("Player 2:Rock");
System.out.println("The Game Result is Draw");
break;
case'P' :System.out.println("Player 2:Paper");
System.out.println("The Game Result is: Player 2 Wins");
break;
case'S' :System.out.println("Player 2:Scissors");
System.out.println("The Game Result is: Player 1 Wins");
break;
default: System.out.println("Invalid Option");
break;
}
break;
case 'P' : System.out.println ("Player 1:Paper");
switch(player2Input)
{
case'R' : System.out.println("Player 2:Rock");
System.out.println("The game result is: Player 1 Wins");
break;
case'P' :System.out.println("Player 2:Paper");
System.out.println("The game result is: Draw");
break;
case'S' :System.out.println("Player 2:Scissors");
System.out.println("The Game Result is: Player 2 Wins2");
break;
default: System.out.println("Invalid Option");
break;
}
break;
case 'S' : System.out.println ("Player 1:Scissors");
switch(player2Input)
{
case'R' : System.out.println("Player 2:Rock");
System.out.println("The Game Result is: Player 2 Wins");
break;
case'P' :System.out.println("Player 2:Paper");
System.out.println("The game result is: Player 1 Wins");
break;
case'S' :System.out.println("Player 2:Scissors");
System.out.println ("The Game Result is: Draw");
break;
default: System.out.println("Invalid Option");
break;
}
break;
}
}
}
您的开关语句超出了循环执行的代码,将其移至线player2Input = userInput2.charAt(0);
之后的点,它必须留在循环括号内。
开关语句超出了范围,这意味着程序不知道在哪里寻找它,并且出于所有意图和目的,该程序和循环是看不见的。如果在for循环之后移动括号之后,则将其运行正常。
您编写的Switch语句仅评估玩家的最后一个输入,因此需要将其移动到for loop中。
另外,当您声明变量时初始化您的变量总是很好的。
import java.util.Scanner;
public class Part2
{
public static void main (String[]args)
{
Scanner scan = new Scanner(System.in);
String userInput1 = "";
char player1Input = ' ';
String userInput2 = "";
char player2Input = ' ';
for(int i = 0; i < 5; i++) //Loop for game
{
System.out.println("Player 1: Please Enter e.g R for Rock:");
System.out.println("R.Rock");
System.out.println("P.Paper");
System.out.println("S.Scissors");
userInput1 = scan.next();
player1Input = userInput1.charAt(0);
System.out.println("Player 2: Please Enter e.g S for Scissors");
System.out.println("R.Rock");
System.out.println("P.Paper");
System.out.println("S.Scissors");
userInput2 = scan.next();
player2Input = userInput2.charAt(0);
switch(player1Input)
{
case 'R': System.out.println ("Player 1:Rock");
switch(player2Input)
{
case'R' :
System.out.println("Player 2:Rock");
System.out.println("The Game Result is Draw");
break;
case'P' :
System.out.println("Player 2:Paper");
System.out.println("The Game Result is: Player 2 Wins");
break;
case'S' :
System.out.println("Player 2:Scissors");
System.out.println("The Game Result is: Player 1 Wins");
break;
default:
System.out.println("Invalid Option");
break;
}
break;
case 'P' : System.out.println ("Player 1:Paper");
switch(player2Input)
{
case'R' :
System.out.println("Player 2:Rock");
System.out.println("The game result is: Player 1 Wins");
break;
case'P' :
System.out.println("Player 2:Paper");
System.out.println("The game result is: Draw");
break;
case'S' :
System.out.println("Player 2:Scissors");
System.out.println("The Game Result is: Player 2 Wins2");
break;
default:
System.out.println("Invalid Option");
break;
}
break;
case 'S' :
System.out.println ("Player 1:Scissors");
switch(player2Input)
{
case'R' :
System.out.println("Player 2:Rock");
System.out.println("The Game Result is: Player 2 Wins");
break;
case'P' :
System.out.println("Player 2:Paper");
System.out.println("The game result is: Player 1 Wins");
break;
case'S' :
System.out.println("Player 2:Scissors");
System.out.println ("The Game Result is: Draw");
break;
default:
System.out.println("Invalid Option");
break;
}
break;
}
}
}
}