no swim no life
CODE complete, 16: 루프 제어 본문
루프 제어
- 루프에 영향을 미치는 요소의 수를 최소화
- 될 수 있는 한 제어 부분을 루프의 밖에 입력하고, 루프 내에서 실행되어야 하는 조건들을 분명히 한다.
루프 진입
- 한 위치에서만 진입한다.
- 루프가 시작되기 바로 전에 초기화 코드를 입력한다.
- 무한 루프는 while ( true )를 사용한다.
루프 처리
- 루프에 있는 명력문들을 둘러싸기 위해서 { 과 }을 사용한다.
- 빈 루프를 피한다.
- 루프에서 보조 관리 작업들(housekeeping)은 루프의 시작이나 끝에 놓는다.
- 루프가 하나의 기능만 수행하도록 한다.
루프 종료
- 종료되는지 확인한다.
- 종료 조건을 명확하게 한다.
- 루프를 종료하기 위해서 for 루프의 인덱스를 조작하지 않는다.
- 루프 인덱스의 마지막 값에 의존하는 코드를 피한다.
- while 루프에서 boolean 플래그 대신 braek 명령문을 사용할 것을 고려한다.
- 루프 내에 수많은 break 문이 산재되는 것을 주의한다.
- break와 continue를 신중히 사용한다. break를 사용하면 뤂를 블랙박스로 취급할 수 없게 된다.
루프의 길이
- 한눈에 볼 수 있도록 루프의 길이를 짧게 만든다.
- 중첩을 3 수준으로 제한한다. 루프를 이해하는 프로그래머의 능력은 중첩의 수준이 3수준을 넘어가면 현저하게 떨어진다고 한다(Yourdon 1986a)
'work > fundamental' 카테고리의 다른 글
CODE complete, 17: 특이한 제어 구조들 (0) | 2009.05.09 |
---|---|
CODE complete, 14: 직선형 코드 구성하기, 15: 조건문 사용 (0) | 2009.02.17 |
readv, writev 벡터 입출력 (0) | 2009.01.31 |
Comments