반복문 저~~엉~말 중요하다고 생각한다. 현재 자바를 배우는 동안에도 그리고 취직을 해서도 사용할 것이라고 생각을 하고 있다.
이 글을 쓰고 있는 나도 반복문에서 정말 많이 막혔던 기억이 있다.
내 머리털을 뽑히게 만든 별찍기 ㅂㄷㅂㄷ...
그 만큼 자바초급에서 가장 중요하게 생각하는 부분이 바로 반복문이다. 이전 포스트인 조건문에서도 말했다 싶이 주변에서 아직 헷갈려 하는 사람들이 많다. 물론 이번엔 나도 마찬가지다. 어느 정도는 사용하고 내 머릿 속 생각을 구현할 정도긴 하지만 나는 더 클린하고 완벽한 코드를 꿈꾼다.
왜 중요하냐? 라고도 물어볼 수 있다.
나는 이 질문에 대해 정확한 답을 해줄 수 없지만 내 개인적 생각으로는 자바를 처음 배우는 초급에서 실행 순서 즉 작동원리를 처음만나고 깨우쳐야 하기 때문이라고 답해줄 수 있다.
for문에 작동원리도 모른면서 미래에 상속, method로 나가게 되면 매개변수는 왜 받는 것이고 여기서 실행했는데 왜 저기서 실행되냐는 어처구니 없는 질문을 할 수 있다. 이 질문을 하지 않고 싶다면 for문을 우습게 보지 않는 것을 추천한다.
반복문
형식
for(초기화; 조건식; 증감식){
실행부
}
앞서 내가 실행순서가 정말 중요하다고 말했다. 때문에 나는 이 for문 각 파트에 번호를 붙여줄 것이다.
초기화 - 1번
조건식 - 2번
증감식 - 4번
실행부 - 3번
예를 들어
for문 자체를 축구장이라고 표현한다면 나는 축구선수이다.
초기화(1번) 축구장에 들어서면 나는 1번이라는 번호를 부여받는다. (NO.7 손흥민 만세)
조건식(2번) 영국 EPL 의 한 시즌 당 38경기를 치룬다.
실행부(3번) 축구장 안에서 나는 규칙을 지키면서 열심히 축구를 한다.
증감식(4번) 한 경기는 1라운드로 경기가 끝나면 라운드 수는 오른다.
위 예를 for문으로 그려보면 다음과 같다.
for(int i = 1; i <= 38; i++){
축구하다.
}
즉, 축구장 안에 들어선 나는 내 등번호 1로 초기화 당하고, 정해진 38경기 안에서, 열심히 축구하다가, 경기가 끝나게 되면 1경기가 카운트 된다.
작동원리를 최대한 쉽게 내 나름대로 해석해 풀어보았다. for문이 어려워 이 글을 보는 사람에게 조금이라도 도움이 됐으면 좋겠다. 나 또한 그런 경험이 있었기 때문에.......
만약 내 설명으로 인해 for문에 대한 이해가 끝났다면 while 문은 식은죽 먹기다. 모든 for문은 while문으로 변경가능하기 때문이다.
while문은 보통 반복횟수를 모를 때 사용하며 사용형식 또한 간단하다.
형식
while(조건식){
}
조건식은 당연히 true/false 가 들어가야 하며, false일 시 작동 중지한다.
앞에 do 가 붙었다. 우리가 do로 유추해 볼 수 있는 것은 반복문이 실행되기 이전 최소한 한 번은 실행한다는 의미로 해석할 수 있다.
이 또한 형식이 간단하다.
do{
}while(조건식)
do문 안에 실행식이 들어가고 실행이 한번 된 후에 조건식을 만나 조건에 미달 시 계속해서 반복문을 실행한다.