2015-10-20 3 views
1

Так что в основном я просто пытаюсь заставить этот бит кода работать. Раньше это выполнялось, когда у меня было «else» ниже двух операторов if. Однако, когда я перехожу его над ней дает мне следующую ошибку:Driver.java:55: error: 'else' without 'if'

Driver.java:55: error: 'else' without 'if' 

Я бы очень признателен за помощь в решении этой проблемы, так он будет работать снова.

 { 
     synchronized(someObject) 
     { 
      someObject.wait(); 
      System.out.println(ID + " has been notified."); 

      Customer customer = null; 

      if(Dispatcher.customerRequiresPickUp() && (customer = Dispatcher.queue.poll()) != null && (rideCount >= workFinished))   

      System.out.println("Customer has been picked up by driver #" + ID); 

      try 
       { 
       Thread.sleep(rn.nextInt(5000) + 1000); 
       System.out.println("Driver #" + ID + " has dropped off " + customer.getName() + " at " + customer.getEndLocation() + "."); 
       } 
       catch(InterruptedException e) 
       { 
       } 

      else 
       System.out.println("Driver #" + ID + " will continue to wait for a customer."); 

      if(rideCount >= workFinished) 
      onDuty(false); 
     } 
    } 
+0

Вам нужны скобки для оператора if. – 3kings

+2

Всегда используйте фигурные скобки {}, чтобы избежать путаницы и ошибок. –

+0

Нет прилагающихся скобок для оператора if. Поэтому ошибка в этом случае –

ответ

2
if(Dispatcher.customerRequiresPickUp() && (customer = Dispatcher.queue.poll()) != null && (rideCount >= workFinished)) 
{   

     System.out.println("Customer has been picked up by driver #" + ID); 

     try 
      { 
      Thread.sleep(rn.nextInt(5000) + 1000); 
      System.out.println("Driver #" + ID + " has dropped off " + customer.getName() + " at " + customer.getEndLocation() + "."); 
      } 
      catch(InterruptedException e) 
      { 
      } 
} 
else 
{ 
    System.out.println("Driver #" + ID + " will continue to wait for a customer."); 
} 

Вы должны фигурные скобки {} если тело из if заявления более чем одна строка. Так вот.