더북(TheBook)

2.3 For 루프 대신 For-Each

class LaunchChecklist {

    List<String> checks = Arrays.asList("Cabin Pressure", 
            "Communication", 
            "Engine");

    Status prepareForTakeoff(Commander commander) { 
        for (int i = 0; i < checks.size(); i++) {
            boolean shouldAbortTakeoff = commander.isFailing(checks.get(i)); 
            if (shouldAbortTakeoff) {
                return Status.ABORT_TAKE_OFF; 
            }
        }
        return Status.READY_FOR_TAKE_OFF; 
    }
}

자료 구조를 순회하는 방법은 많습니다. 초보자가 흔히 배우는 방법이 반드시 가장 좋은 방법은 아닙니다.

위 코드에서는 checks라는 List 자료 구조를 순회합니다. for 루프를 사용하며 인덱스 변수인 ichecks를 순회하죠.

모든 C 스타일 프로그래밍 언어에서 사용하는 매우 전통적인 순회 방법입니다. 주로 배열에 쓰이지만 자바에서는 인덱싱된 컬렉션이면 어떤 종류와도 동작합니다(Set이나 Map은 빼고요). 현재 순회 중인 인덱스 i를 바로 쓸 수 있다는 장점이 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.