반복문
은 조건식에 따라 특정 구문을 반복하는 제어 구문입니다. 반복문
에는 while, do~while, for와 for의 변형 문법이 있는데 우선 while과 do~while에 대해서 알아보겠습니다.
while
문은 조건식을 만족하는 동안 블록 내부의 코드를 반복 실행합니다. 조건식이 true면 반복하고, false이면 반복을 중지합니다.
while
문은 다음과 같이 사용합니다.
while(조건식){
//조건식이 참일때 실행할 코드 + 증감식
}
증감식
이라는 단어가 등장하는데, 증감식
이란 조건식을 만족시키기 위한 코드입니다. 다음 사진 코드에서 조건식을 만족시키기 위해 i를 증가시키는 연산을 증감식
이라고 볼 수 있습니다.
do~while
문도 역시 while
처럼 조건식을 만족하는 동안 블록 내부의 코드를 반복 실행합니다. while
문과 다른점은 do~while
은 조건식을 만족하지 않더라도 무조건 한 번은 블록 내부의 코드를 실행 하고 반복문의 조건식을 검사합니다. do~while
문은 다음과 같이 사용합니다.
do {
//참이면 실행할 코드들 + 증감식
} while(조건식);
do~while
문은 구조상 while문이 블록 최후에 나옵니다. 따라서 do~while
문의 마지막 while문에 세미콜론;
을 붙여야함을 주의해야합니다.
while문에서 예제로 썼던 코드를 do~while
문으로 바꿔보겠습니다
while
과 do~while
의 가장 큰 차이점은 조건식에 따라서 while
문은 반복을 한 번도 하지 않고 넘어갈 수 있는 반면, do~while
은 무조건 한 번은 실행하게 된다는 점이 다릅니다.
각 반복문의 내부에 다른 반복문을 넣어 중첩을 시킬 수 있습니다. 반복문 문법을 섞어서 사용할 수도 있습니다.
하지만 반복문 같은 경우 시스템 자원을 많이 소모하는 작업이기 때문에 중첩 반복문을 이용하면 성능 저하를 크게 일으킬 수 있고, 코드도 복잡해집니다. 따라서 가급적이면 반복문을 중첩해서 사용하는 것을 지양해야합니다.
while() {
while() {
do {
} while();
}
}
무한 루프
란 반복문이 끝나지 않고 영원히 도는 구문을 의미합니다. 앞에서 언급했듯이 반복문은 시스템 자원을 많이 소모하므로 무한 루프
역시 가급적이면 사용하는 것을 지양하는 것이 좋습니다.
while
문으로 무한 루프
를 만드는 법은 간단합니다. while
문은 조건식이 참일 경우 반복하므로 조건식에 true 혹은 truthy한 값을 넣으면 됩니다.
while(true) {
}
do ~ while
도 마찬가지로 while
문의 조건식에 true 혹은 truthy한 값을 넣으면 됩니다.
do {
} while(true);