2017-12-07 14 views
-2

문제는 "return 문이 누락되었습니다"라는 오류가 발생합니다. 어떻게 해결할 수 있을까요? 코드의 실제 요점은 모든 동료의 잔액과 잔액을 추가 한 다음 휴가로 충분한지 확인하는 것입니다. 나는 또한 다른 필드 변수를 선언했습니다.for 루프에있는 if 문에서 return 문이 누락되었습니다.

private int every1nzBalance; 

public boolean checkMoney(Holiday holiday) 
{ 



    // For each friend i.e in the list 

    for(Friend friend:companions) 
    { 
     if(friend.getMoney()+ balance>=holiday.getPrice()) 
     { 

     System.out.println("You including your friends have sufficient funds to pay for the"+holiday+" holiday."); 

     return true; 
     } 

     else 

     { 
      System.out.println("Please ensure that you and your friends have sufficient amount of money for the holiday"); 

      return false; 
     } 
     } 

    } 
+0

'companions'가 비어 있고 for 루프가 한 번이라도 반복하지 않으면 어떻게됩니까? 어떤 가치가 반환되어야합니까? 어떻게 그걸 보장 했어? – Pshemo

+0

BTW가'return'을 실행하면 메소드의 흐름을 벗어나 루프 밖으로 빠져 나갈 것입니다. 'if/else' 두 경우 모두에서'return '을 가지므로 루프의 목적을 무효로하는 첫 번째 반복에서 빠져 나갈 것이라는 것을 의미합니다. – Pshemo

+0

컴패니언은 객체를 생성하고 배열 목록 컴패니언을 처음에 저장하는 '멤버'클래스의 포인터를 사용하여 채울 때까지 비어 있습니다. 반환되어야하는 값은 '멤버'잔액을 컴패니언과 함께 추가하기 때문에 부울입니다. 그러면 휴가 비용보다 많은 경우 true를 반환합니다. – Bilalo

답변

0

간단합니다. for에 반복 할 내용이 없으면 (배열이 비어 있음), 전혀 실행되지 않습니다. 마지막에 기본 return 문이 필요합니다.

private int every1nzBalance; 

public boolean checkMoney(Holiday holiday) { 

if(companions == null) return false; //also default return 

for(Friend friend : companions) 
{ 
    if(friend.getMoney()+ balance>=holiday.getPrice()) 
    { 

    System.out.println("You including your friends have sufficient funds to pay for the"+holiday+" holiday."); 

    return true; 
    } 

    else 

    { 
     System.out.println("Please ensure that you and your friends have sufficient amount of money for the holiday"); 

     return false; 
    } 
    } 
    return false; //default return 
} 
+0

Arraylist 컴패니언에 올바르게 액세스하고 있습니까? – Bilalo

+0

컴패니언 목록이 초기화되는 곳을 모르지만 컴패니언 목록을 매개 변수로 전달하거나 클래스 내에서 선언하는 한 계속 작동합니다. –

+0

Companions ArrayList는 동일한 클래스에서 선언됩니다. 코드를 실행할 때 Null 포인터 오류가 발생합니다 – Bilalo