java不等于while循环中的条件
我是Java新手,正在制作一款石头、布、剪刀游戏。我试图弄明白为什么我的while语句在第一次尝试时无法识别正确的输入。谢谢你事先的帮助
`
导入java。util。扫描仪;
导入java。util。随机的
public class RPC
{
public static void main (String[] args)
{
//Utilities
Scanner in = new Scanner (System.in);
Random r = new Random ();
//variables
int userwins =0;
int computerwins =0;
int numberofgames = 0;
int randomnumber = 0;
String userpick = "";
String computerpick = "";
// Welcome statement
System.out.println("Welcome to Rock, Paper, Scissors!");
//Get the number of games from the user
System.out.println("Please enter the number of rounds you would like to play:");
numberofgames = in.nextInt();
//Flush the buffer
in.nextLine();
// Game play for the number of times the user specified.
for (int i=1; i <= numberofgames; i++)
{
System.out.println("Rock, Paper, or Scissors?:");
userpick = in.nextLine();
while (!userpick.equalsIgnoreCase("rock") && !userpick.equalsIgnoreCase("paper") && !userpick.equalsIgnoreCase("scissors"));
{
System.out.println("Sorry," +userpick+ " is not a valid entry.Please enter Rock, Paper, or Scissors.");
userpick = in.nextLine();
}
//Make a random choice
randomnumber = r.nextInt(3)+1;
if (randomnumber == 1)
{
computerpick = ("rock");
}
if (randomnumber == 2)
{
computerpick = ("paper");
}
if (randomnumber == 3)
{
computerpick = ("scissors");
}
//Decide who wins the round
if (userpick.equalsIgnoreCase("rock")) {
if (computerpick.equalsIgnoreCase("scissors"))
System.out.println("Rock beats scissors. You win!");
else if (computerpick.equalsIgnoreCase("paper"))
System.out.println("Paper beats rock. The computer wins!");
else
System.out.println("Computer chooses rock. It's a tie.");
}
else if (userpick.equalsIgnoreCase("paper")) {
if (computerpick.equalsIgnoreCase("scissors"))
System.out.println("Scissors beats paper. The computer wins!");
else if (computerpick.equalsIgnoreCase("rock"))
System.out.println("Paper beats rock. You win!");
else
System.out.println("Computer chooses paper. It's a tie.");
}
else if (userpick.equalsIgnoreCase("scissors")) {
if (computerpick.equalsIgnoreCase("rock"))
System.out.println("Rock beats scissors. The computer wins!");
else if (computerpick.equalsIgnoreCase("paper"))
System.out.println("Scissors beats paper. You win!");
else
System.out.println("Computer chooses scissors. It's a tie.");
}
}
} }`
# 1 楼答案
在java中,分号通常以一行结尾。为了使while循环运行,需要删除半列
# 2 楼答案
删除for循环后面的分号。while/for/if后面的分号表示它是一个null语句,这意味着下一个带大括号的代码块的作用就像一个无论条件是否为true都会被计算的代码块
# 3 楼答案
删除终止
while
语句的分号