2013-03-24 2 views
0

이 메서드는 구멍을 완료 할 때 플레이어가 한 획 수를 기록하는 것입니다. 스트로크가 성공적으로 기록되면이 메서드는 true를 반환합니다. 2 가지주의 사항이 있습니다 : (1) 홀은 순서대로 기록되어야하며 1로 시작해야합니다. 홀이 고장난 경우 점수는 기록되지 않고 false가 반환됩니다 (2) 홀 번호도 유효해야합니다. 코스의 홀 수보다 1보다 작거나 같은 홀 점수를 기록 할 수 없습니다. 코드는 java.lang.NullPointerException을 제공합니다. 무엇이이 평균을 수행하고 어떻게 해결합니까 그것을If recordStrokes 메서드에 대한 문

참고 : holesPlayed 여기 0

의 값을 할당 인스턴스 변수 인 것은 내가 무엇을 가지고 :

holeNumber 1에 넘겨진다
public boolean recordStrokes(int holeNumber, int strokes) { 
    if ((holeNumber >= 1) && (holeNumber <= Course.NUM_OF_HOLES) 
     && (holeNumber == holesPlayed + 1)) { 
     scores[holeNumber -1] = strokes; 
     holesPlayed = holesPlayed + 1; 
     return true; 
    } else { 
     return false; 
    } 
} 
+0

이 메서드를 holeNumber = 1로 호출했을 때 holesPlayed의 초기 값은 무엇입니까 –

+0

holesPlayed = 0을 지정하라는 메시지가 표시되었습니다. –

답변

0

, holesPlayed은 0이므로 실패합니다 : holeNumber <= this.holesPlayed.

+0

holesPlayed = 0을 할당하도록 지시 받았습니다. holeNumber <= this.holesPlayed + 1을 시도했습니다. 이로 인해 테스트 케이스가 실패하게되었습니다. –

+0

첫 번째 프로그래밍 과정의 숙제입니다. 내 진술은 프로그램이 요구하는 유효성 조건을 충족시키는 것 같다. 내가 그것을 어떻게 바꿀 수 있는지에 대한 단서는 실패하지 않을 것입니다. –

+0

첫 번째 구멍을 처리하기 위해 내 문장을 수정했지만 이제는 java.lang.NullPointerException이 발생합니다. 이것이 의미하는 바는 무엇이며 어떻게 수정해야합니까? –