我正在努力在我的游戏中实现while循环,因为它总是给我一个无限循环。这个想法是继续游戏,除非用户键入“-1”
// declare variables
int player, computer;
int counter = 0;
// player input
System.out.println("Rock, Paper, Scissors!");
System.out.print("Enter 0 for paper, 1 for Scissors, or 2 for Rock (-1 to quit) : ");
player = sc.nextInt();
while (player != -1) {
// switch statement for player
switch (player) {
case 0:
System.out.println("Player picks Paper");
break;
case 1:
System.out.println("Player picks Scissors");
break;
case 2:
System.out.println("Player picks Rock");
break;
case -1:
System.exit(-1);
break;
default:
System.out.println("Invalid input");
}
// generate a random number for computer
Random randomGen = new Random();
computer = randomGen.nextInt(3);
// switch statement for computer
switch (computer) {
case 0:
System.out.println("Computer picks Paper");
break;
case 1:
System.out.println("Computer picks Scissors");
break;
case 2:
System.out.println("Computer picks Rock");
break;
default:
}
// output for each condition
if (player == 2 && computer == 1)
System.out.println("Player Wins!");
else if (player == 1 && computer == 0)
System.out.println("Player Wins!");
else if (player == 0 && computer == 2)
System.out.println("Player Wins!");
else if (computer == 1 && player == 0)
System.out.println("Computer Wins!");
else if (player == 0 && computer == 2)
System.out.println("Computer Wins!");
else if (player == 1 && computer == 2)
System.out.println("Computer Wins!");
else
System.out.println("Draw");
sc.close();
}
答案 0 :(得分:1)
您永远不会更新player
值。将player = sc.nextInt()
添加到循环体的末尾。 或,执行类似
int player;
while ((player = sc.nextInt()) != -1) {
,我相信你也应该删除对sc.close();
的号召