횟수 반복과 조건부 반복이라는 차이도 있지만 이런 관점도 있다.
int i = 0;
while ( i < 5 ) {
i++;
}
일반적으로 위와 같이 쓰는데, 만약 사이사이 코드가 길어진다면, 즉 다음과 같은 경우에는 불편함이 생긴다.
int i = 0;
//뭔
//지
//는
//몰
//라
//도
//아
//무
//튼
//엄
//청
//나
//게
//긴
//코
//드
//드
//드
//드
//드
//드
//드
while ( i < 5 ) {
//뭔
//지
//는
//몰
//라
//도
//아
//무
//튼
//엄
//청
//나
//게
//긴
//코
//드
//드
//드
//드
//드
//드
//드
i++;
}
이런 경우 반복 조건과 그 과정이 한눈에 들어오지 않는다.
i
가 몇으로 초기화 되어 어떤 조건에 의해 얼마나 증가(또는 감소)하며, 반복을 멈추는 조건은 무엇인지 파악하기가 어렵다는 얘기다.
그래서 반복에 영향을 주는 구문을 한 줄에 쓰기로 했다.
while(int i = 0; i < 5; i++) {
//...
}
이 경우 //...
에 엄청 긴 내용이 와도 반복이 어떻게 진행되는지 한 번에 파악할 수 있다.
같은 while
문이지만 구조가 다른, 일종의 오버로딩 overloading인 셈이다.
지금이야 메소드든 연산자든 오버로딩이 보편적이지만, 예전에는 그러면 큰일 나는 줄 알았다.
그래서 다르게 쓰기로 했다.
for(int i = 0; i < 5; i++) {
//...
}
이 과정에서 나온 게 for
문이다.
진짜인지는 모르겠지만 이런 썰도 있다.