2015-07-21 9 views
0

Изучение Java, теперь я не знаю почему, но этот код продолжает давать мне проблемы с операторами else if.Почему мой код в Java дает мне столько проблем с операторами if else в этой конкретной строке кода в Jgrasp?

public class Sherlock 
{ 
    public static void main(String[] args) 
    { 
     String answer = "Watson"; 
     String response = ""; 
     int tries = 0; 
     Scanner input = new Scanner(System.in); 
     while (tries <=3); 
     { 
      System.out.print("Enter the name of Sherlock's partner, and  dear friend. "); 
      response = input.nextLine(); 
      tries++; 

      if (response.equals ("Watson")) 
      while (tries<= 3) 
      { 
       System.out.println("Yes, that is right, Barrel Rider."); 
       break; 
      } 
      else if (tries == 3) 
      { 
       System.out.println("Ooooh, sorry kid but it looks like you are  S.O.L."); 
       break; 
      } 
       else 
       while (tries <= 3) 
       { 
      System.out.println("Sorry, try again!"); 
       } 

     } 
    } 
} 

Условные еще ошибка заявления было более или менее решена, но теперь я получаю другую ошибку:

Sherlock.java:24: Ошибка: перерыв внешнего переключателя или цикл перерыва; ^ 1 error

Почему он настаивает на том, чтобы я поставил разрыв вне переключателя или петли?

+3

Я отформатировал ваш код. Правильно отформатированный код является первым шагом в написании кода без ошибок. Это намного облегчает поиск вещей, которые не должны быть там ... как ошибочные полуколоны после вашего цикла while и вашего первого оператора 'if'. –

+0

Хороший глаз Шерлок;) – JFPicard

+0

Спасибо, Крис. Ты да бос. –

ответ

1

удалить точку с запятой из, если заявление

if (response.equals ("Watson")) 

И время цикла

while (tries <=3) 

Эти полуприцепы двоеточия портя разбор ваших управляющих операторов. Причина, по которой точка с запятой после того, как if-statement испортит ситуацию, состоит в том, что синтаксический анализатор не ожидает, что там будет тело из-за наличия точки с запятой, и поэтому он не ожидает, что там будет другое после if-утверждения без тела.

В будущем я предлагаю вам убедиться, что вы проверили свой код на действительную семантику и синтаксис. Вы узнаете основы контрольных инструкций из любого хорошего учебника на YouTube.

+0

Я вносил исправления, но теперь он просит меня положить разрыв вне цикла в строке выше. –

+0

@Dark_Firaga Вы добавили новый цикл в if-statement? Удалите это – SamTebbs33

+0

Tebbs33: Ooooooooooooh, я вижу. –

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

  • Нет связанных вопросов^_^