2015-10-17 3 views
-3

Я не уверен, почему в этой программе не работают мои инструкции if else.Ошибка if-else 'else' without 'if'

int roll = (int) (Math.random()*7 + 1); 

System.out.println("Rolled: " + roll); 
System.out.println("Enter 'r' to roll again or 'h' to hold"); 
String answer = scan.next(); 
String answer1 = answer.toUpperCase(); 

if (answer1=="R"){ 
    int roll2 = (int) (Math.random()*7 + 1); 
    System.out.println("Rolled: " + roll2); 
else { 
    System.out.println("Your score = " + roll); 
}  
+1

Watttch youse bracketsess ... –

+0

@MartinJames Я никогда не видел, чтобы Голлум отвечал на вопрос программирования до ... haha ​​ – zerobandwidth

ответ

0

Вы находитесь в блоке 'if {', когда вы нажмете на него, поэтому сообщение об ошибке. Сопоставьте свои скобки для удовольствия и прибыли.

Если бы вы отступом код, чтобы начать с, вы, вероятно, заметили это без SO вопрос :(

0

Здесь вы идете. Смотрите скобка добавляется в начале еще линии.

int roll = (int) (Math.random()*7 + 1); 

System.out.println("Rolled: " + roll); 
System.out.println("Enter 'r' to roll again or 'h' to hold"); 
String answer = scan.next(); 
String answer1 = answer.toUpperCase(); 

if (answer1=="R"){ 
    int roll2 = (int) (Math.random()*7 + 1); 
    System.out.println("Rolled: " + roll2); 
} else { 
    System.out.println("Your score = " + roll); 
} 
1

Я думаю, ваша проблема будет легко решена с помощью более тщательного стиля кодирования.

if(answer1 == "R") 
{ 
    int roll2 = (int)(Math.random() * 7 + 1) ; 
    System.out.println("Rolled: " + roll2) ; 
} // This one's missing in your code, and is the problem. 
else 
{ 
    System.out.println("Your score = " + roll) ; 
} 

Кстати, ваше if() условия никогда не будет так, но я буду л создайте причину, почему это упражнение для читателя, если вы окажетесь в задаче .equals().

+0

«более тщательный стиль кодирования» - точно :) –

0

Попробуйте отступы и расстояние от вашего кода, ответ скоро будет раскрыт.

int roll = (int) (Math.random()*7 + 1); 

System.out.println("Rolled: " + roll); 
System.out.println("Enter 'r' to roll again or 'h' to hold"); 
String answer = scan.next(); 
String answer1 = answer.toUpperCase(); 

if (answer1=="R") 
{ 
    int roll2 = (int) (Math.random()*7 + 1); 
    System.out.println("Rolled: " + roll2); 
//MISSING BRACKET 
else 
{ 
    System.out.println("Your score = " + roll); 
}  
0

Как и многие другие, вы забыли конечную скобку, если раньше. Если ваш код был отступом, вы бы нашли ошибку легко. Некоторые редакторы, такие как Eclipse и GNU Emacs, имеют функцию автоматического отступа. Кроме того, вы должны использовать метод equals для сравнения строк. How do I compare strings in Java?