Java If-else语句中的非语句错误

Java If-else语句中的非语句错误,java,if-statement,Java,If Statement,我正在制作一个程序,生成一个随机数,让你猜出来,然后告诉你是否正确。代码是: void guessNumber(); { //Asks for guess of the number. Prints whether the guess is above or below randomNumber. Scanner reader = new Scanner(System.in); numberOfTries = 0; While(userGuess != ran

我正在制作一个程序,生成一个随机数,让你猜出来,然后告诉你是否正确。代码是:

void guessNumber();
  {
    //Asks for guess of the number. Prints whether the guess is above or below randomNumber.
    Scanner reader = new Scanner(System.in);
    numberOfTries = 0;
    While(userGuess != randomNumber);
       System.out.println("Guess the number ");
       int userGuess = reader.nextLine();
       If (userGuess = randomNumber); {
          numberOfTries += 1;
         System.out.println("Correct! It took you " + numberOfTries + " tries to find my numnber");
       } Else; {
         distanceFromNumber = Math.abs(7);
         numberOfTries += 1;
         System.out.println("Incorrect! The number that you guessed is " + distanceFromNumber + "numbers away from my number ");
       }
  }

编译器返回“Else”部分不是语句。如果我从“If”和“Else”行中删除分号,编译器还会告诉我这两行需要一个“;”。我也尝试过改变括号的格式,但没有帮助

Else应该是小写的,就像Java中的所有关键字一样,不应该以分号结尾

...
} else {
...
if()或while()语句后面也不应该有分号,while()语句后面也不应该有左括号

while(true)
{ //missing
}
总之,另外

void guessNumber() //EDIT removed semi-colon
  {
    //Asks for guess of the number. Prints whether the guess is above or below randomNumber.
    Scanner reader = new Scanner(System.in);
    numberOfTries = 0;
    while(userGuess != randomNumber) //EDIT removed semi-colon + lowercase while
    {//EDIT added this bracket
       System.out.println("Guess the number ");
       int userGuess = reader.nextLine();
       if (userGuess == randomNumber) {//EDIT removed semi colon, lowered case of 'If' & added double equals (equality testing and not assignment)
          numberOfTries += 1;
         System.out.println("Correct! It took you " + numberOfTries + " tries to find my numnber");
       } else { //EDIT removed semi-colon & changed case
         distanceFromNumber = Math.abs(7);
         numberOfTries += 1;
         System.out.println("Incorrect! The number that you guessed is " + distanceFromNumber + "numbers away from my number ");
       }
    }//EDIT Added this bracket
  }

您使用的是大写字母,其中特殊单词总是小写

void guessNumber()
  {
    //Asks for guess of the number. Prints whether the guess is above or below randomNumber.
    Scanner reader = new Scanner(System.in);
    numberOfTries = 0;
    while(userGuess != randomNumber);
       System.out.println("Guess the number ");
       int userGuess = reader.nextLine();
       if (userGuess = randomNumber) {
          numberOfTries += 1;
         System.out.println("Correct! It took you " + numberOfTries + " tries to find my numnber");
       } else {
         distanceFromNumber = Math.abs(7);
         numberOfTries += 1;
         System.out.println("Incorrect! The number that you guessed is " + distanceFromNumber + "numbers away from my number ");
       }
  }

java中的关键字小写(
while
if
else
…)

您还想删除
while
if
else
行之后

为了比较数值,请使用:

if (userGuess == randomNumber) {
应该是

  If (userGuess == randomNumber)

所有java关键字都应该是小写的,所以

if
else
while
此外,您还可以使用==来询问“某物是否等于其他某物”,而不是将某物设置为等于其他某物的=

所以


它不是别的,它是别的,而应该是没有时间的分号,更少的大写字母@答案:只做一个好答案,而不是5个不完整的。别再互相攀比了。我想这不是你想要的
if(userGuess=randomNumber)
if(userGuess==randomNumber)
就是你想要的want@lordkain:不要通过编辑他的帖子来回答问题。
void guessNumber()应该是
void guessNumber()
请解决所有问题。指出它们并不难,但它会让事情变得清晰-您的编辑仍然包含4到5个问题。
void guessNumber()
应该是
void guessNumber()
If
应该是
If
(userGuess=randomNumber)
必须是
(userGuess==randomNumber)
必须是
请在发布之前检查两次答案:)
if
else
while
while(condition){
    if (a==b){

    }else{

    }
}