no swim no life

CODE complete, 16: 루프 제어 본문

work/fundamental

CODE complete, 16: 루프 제어

달려간다 2009. 3. 12. 09:07

루프 제어

  • 루프에 영향을 미치는 요소의 수를 최소화
  • 될 수 있는 한 제어 부분을 루프의 밖에 입력하고, 루프 내에서 실행되어야 하는 조건들을 분명히 한다.

 

루프 진입

  • 한 위치에서만 진입한다.
  • 루프가 시작되기 바로 전에 초기화 코드를 입력한다.
  • 무한 루프는 while ( true )를 사용한다.

 

루프 처리

  • 루프에 있는 명력문들을 둘러싸기 위해서 { 과 }을 사용한다.
  • 빈 루프를 피한다.
  • 루프에서 보조 관리 작업들(housekeeping)은 루프의 시작이나 끝에 놓는다.
  • 루프가 하나의 기능만 수행하도록 한다.

 

루프 종료

  • 종료되는지 확인한다.
  • 종료 조건을 명확하게 한다.
  • 루프를 종료하기 위해서 for 루프의 인덱스를 조작하지 않는다.
  • 루프 인덱스의 마지막 값에 의존하는 코드를 피한다.
  • while 루프에서 boolean 플래그 대신 braek 명령문을 사용할 것을 고려한다.
  • 루프 내에 수많은 break 문이 산재되는 것을 주의한다.
  • break와 continue를 신중히 사용한다. break를 사용하면 뤂를 블랙박스로 취급할 수 없게 된다.

 

루프의 길이

  • 한눈에 볼 수 있도록 루프의 길이를 짧게 만든다.
  • 중첩을 3 수준으로 제한한다. 루프를 이해하는 프로그래머의 능력은 중첩의 수준이 3수준을 넘어가면 현저하게 떨어진다고 한다(Yourdon 1986a)
Comments