2013-11-20 2 views
-5

Я делаю программу, которая генерирует случайное число, вы догадываетесь об этом, а затем говорит вам, правильно ли вы это сделали. Код:ошибка не утверждение в инструкции If-else

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», компилятор также скажет мне, что эти две строки ожидают «;». Я также пытался изменить форматы скобок, и это не помогло.

+0

Его не Else это еще –

+0

Если тоже должен быть, если – Ashok

+0

и Хотя должно быть в то время как – RamonBoza

ответ

2

Else должны быть в нижнем регистре, как и все ключевые слова в Java и не должна заканчиваться точкой с запятой

... 
} else { 
... 

Там также не должно быть запятой после вашего, если() или в то время как() заявления и нет открывающей скобки после в то время как() заявление т.е.

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 
    } 
+0

Пожалуйста, обращайтесь ко всем вопросам. Нетрудно указать на них, но все будет ясно - ваше редактирование все еще содержит 4 или 5 проблем. –

+1

'void guessNumber();' должно быть 'void guessNumber()' и 'If' должно быть' if'' (userGuess = randomNumber) 'должно быть' (userGuess == randomNumber) '' While' должно быть 'while' попробуйте дважды проверить ответ перед отправкой :) – Ashok

1

вы используете столицы, где специальные слова были бы всегда строчных

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 "); 
     } 
    } 
+2

'void guessNumber();' должно быть 'void guessNumber()' – Ashok

+1

'if' использует' == '. –

0

Ключевыми слова в Java являются в нижнем регистре (while, if, else ...)

Вы также хотите удалить ; в конце while, if и после else линий.

И для того, чтобы сравнить значения, используйте:

if (userGuess == randomNumber) { 
0
If (userGuess = randomNumber) 

должен быть

If (userGuess == randomNumber) 
0

Все ключевые слова ява должны быть в нижнем регистре, так;

if 
else 
while 

Кроме того, вы используете == задать вопрос является нечто равное к чему-то еще, а не =, который множества нечто равное к чему-то еще.

так

while(condition){ 
    if (a==b){ 

    }else{ 

    } 
} 
Смежные вопросы