有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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.");

  }
 }

} }`


共 (3) 个答案

  1. # 1 楼答案

    在java中,分号通常以一行结尾。为了使while循环运行,需要删除半列

  2. # 2 楼答案

    删除for循环后面的分号。while/for/if后面的分号表示它是一个null语句,这意味着下一个带大括号的代码块的作用就像一个无论条件是否为true都会被计算的代码块

  3. # 3 楼答案

    删除终止while语句的分号

    while (...);
               ^