Page 12 -
P. 12
가 운 이 좋 은 이 유 는 프 로 그 램 을 실 행 하 자 마 자 바 로 문 제 를 발 견 할 수 있 기 때 문 이 다. 그 림 1 -2 는
그 런 문 제 몇 가 지 를 보 여 준 다.
1 1
그 림 1- 2 같 은 프 로 그 램 에 서 비 롯 된 버 그 가 있 는 세 가 지 프 로 그 램 프
로
램
예 예 예 그
을
b < 0 ? a 반 환 b = 0 ? a 반 환 b = 0 ? a 반 환 더
안
아 니 요 아 니 요 아 니 요 전
하
게
a 에 1 을 더 함 a 에 1 을 더 함 a 에 1 을 더 함 만
들
기
이 프 로 그 램 은 이 프 로 그 램 은 이 프 로 그 램 은
잘 못 된 결 과 를 절 대 로 끝 나 지 않 음 절 대 로 끝 나 지 않 음
만 듦
b 에 서 1 을 뺌 b 에 서 1 을 뺌 a 에 서 1 을 뺌
첫 번 째 예 제 는 틀 린 결 과 를 만 들 어 내 고, 두 번 째 와 세 번 째 는 절 대 끝 나 지 않 는 다. 하 지 만 여 러 분
이 사 용 하 는 프 로 그 래 밍 언 어 가 이 예 제 중 일 부 프 로 그 램 을 아 예 작 성 하 지 못 하 게 막 을 수 있 다
는 점 을 알 아 두 라. 참 조 를 변 경 할 수 없 는 언 어 나 루 프 를 허 용 하 지 않 는 언 어 또 는 무 조 건 분 기 를
허 용 하 지 않 는 언 어 라 면 이 세 가 지 프 로 그 램 중 그 어 느 것 도 작 성 할 수 없 다. 따 라 서 단 지 그 런
언 어 를 사 용 하 기 만 하 면 이 런 문 제 가 해 결 된 다 고 생 각 할 수 도 있 다. 그 리 고 실 제 로 도 그 렇 기 는 하
다. 하 지 만 그 렇 게 제 약 을 가 하 는 언 어 는 제 공 하 는 기 능 의 범 위 가 너 무 좁 기 때 문 에 전 문 적 인 프
로 그 래 밍 환 경 에 서 사 용 하 기 에 는 적 합 하 지 않 다.
해 법 이 있 을 까 ? 그 렇 다. 해 법 이 있 다. 문 제 를 막 기 위 해 쓸 데 없 이 단 순 하 기 만 한 언 어 를 사 용 하 는
것 이 아 니 라 변 경 할 수 있 는 참 조 나 언 어 가 허 용 하 더 라 도 무 조 건 분 기 의 사 용 을 피 하 고 루 프 를 쓰
지 않 는 것 이 다. 즉, 여 러 분 이 해 야 할 일 은 잘 훈 련 된 방 식 으 로 프 로 그 래 밍 을 하 는 것 뿐 이 다.
상 태 변 이 나 루 프 같 은 위 험 한 기 능 을 사 용 하 지 말 라. 비 결 은 정 말 이 렇 게 단 순 하 다! 그 리 고 가 변
참 조 나 루 프 가 필 요 한 경 우 가 생 긴 다 면 그 들 을 추 상 화 하 라. 상 태 변 이 를 추 상 화 하 는 컴 포 넌 트 를
단 한 번 만 작 성 하 라. 그 후 에 는 같 은 문 제 를 다 시 처 리 할 필 요 가 없 을 것 이 다( 다 소 멋 진 언 어 중
일 부 는 처 음 부 터 이 런 기 능 을 제 공 할 지 도 모 른 다. 하 지 만 그 런 언 어 는 아 마 여 러 분 의 업 무 환 경 에
서 사 용 할 수 있 는 언 어 는 아 닐 것 이 다). 그 리 고 이 와 같 은 원 리 를 루 프 에 도 적 용 할 수 있 다. 최 근
대 부 분 의 언 어 는 전 통 적 인 방 식 으 로 사 용 하 는 루 프 와 추 상 화 한 루 프 를 함 께 제 공 한 다. 여 기 서 다
시 말 하 지 만 이 는 훈 련 의 문 제 다. 언 어 가 제 공 하 는 기 능 중 좋 은 부 분 만 사 용 하 라! 이 에 대 해 서 는
4 장 과 5 장 에 서 자 세 히 다 룬 다.
버 그 를 자 주 일 으 키 는 다 른 근 원 으 로 널 (n ull ) 참 조 가 있 다. 6 장 에 서 볼 수 있 듯 이 코 틀 린 을 사 용
0 3 5