목차
1. 반복문이란?
2. for
3. while
4. do~while
5. for와 while
6. 무한루프
1. 반복문이란?
- 공통된 어떤 코드를 반복 실행하기위한 제어문
반복문은 모든 프로그래밍 언어에서 중요한 요소 중 하나로 같은 내용의 긴 코드를 반복수행하도록 하여 가독성과 효율성을 높인 제어문이다. 다음은 반복문을 사용했을 때와 사용하지 않았을 때의 간단한 예시다.
//첫번째 경우
console.log(1);
console.log(2)
console.log(3)
console.log(4)
console.log(5)
console.log(6)
console.log(7)
console.log(8)
//두번째 경우
for(let i=1;i<=8;i++){
console.log(i);
}
위 코드는 단순히 콘솔에 1부터 8을 출력한다. 그런데 첫번째 경우 반복문을 사용하지 않았더니 단순 출력임에도 불구하고 코드의 길이가 8줄이나 되고 가독성이 떨어진다. 그러나 반복문을 사용했을 경우 코드의 경우 단 3줄로 줄었다. 여러 복잡한 명령을 수행하게 되면 그 차이는 더 극명해질 것이다. 이렇게 편리한 반복문을 사용할 수 있도록 종류와 사용방법에 대해 알아보도록 하자.
2. for
- 반복할 횟수를 지정하여 명령을 반복 실행하는 제어문
//문법
for(초기값;조건값;증감값){
//반복실행할 코드
}
for(let i=0; i<5; i++){
console.log('현재 index 값은 '+i);
}
/*
결과값
현재 index 값은 0
현재 index 값은 1
현재 index 값은 2
현재 index 값은 3
현재 index 값은 4
*/
시작을 0, 종료시점을 4로 지정하여 총 5번을 반복하여 콘솔에 출력하였다. 실행을 하는 순서가 콘솔에 출력되는 숫자가 점점 커지고 반복문이 끝나게 되는 것일까?
- 초기값이 0인 것을 확인
- 조건식을 0<5의 조건을 확인
- 조건은 참이므로 명령을 실행
- 증감식을 확인하여 i변수의 값인 0이 1증가
- 증가된 i가 가진 1이라는 값이 5보다 작은지 체크
- 조건은 참이므로 명령을 실행
- i가 4까지 반복
- i가 5로 증가되면 5는 5보다 작지 않으니 조건은 거짓이 되어 반복 종료
3. while
- 주어진 조건을 판단하여 참인동안 반복을 수행하는 제어문
//문법
while(조건식){
반복할 명령
}
//ex)
let i = 0;
while(i<5){
console.log('현재 index 값은 '+i);
i++;
}
/*
결과값
현재 index값은 0
현재 index값은 1
현재 index값은 2
현재 index값은 3
현재 index값은 4
*/
위 코드의 결과는 for문의 예제와 같다.
4. do~while
- 주어진 조건에 대해 참과 거짓을 판단하기 전에 무조건 한번 코드를 수행하는 제어문
//문법
do{
//반복 실행할 명령문
}while(조건식)
//ex)
let i = 1;
do{
console.log(i+'번 실행되었습니다.')
}while(false)
/*
결과값
1번 실행되었습니다.
*/
do ~ while에 주어진 조건은 false, 즉 조건이 거짓이므로 반복을 수행하지 않는다. 하지만 do ~ while의 특성에 의해 코드는 한번 실행하기 때문에 콘솔에 문자열이 출력된다. 그렇다면 언제 사용을 해야하는 것일까?
do ~ while은 어떠한 입력을 받는 등 조건에 상관없이 한 번은 수행해야할 명령에 사용된다.
let count = 1;
let input;
do{
input = promp('숫자를 입력해주세요');
//입력받은 문자가 숫자형인지 체크
if(isNaN(input)){
alert('숫자로 다시 입력해주세요')
}else{
//입력된 숫자면 출력하고 반복을 종료시키기 위해 count를 감소
alert('입력된 숫자 : '+i);
count--;
}
}while(count>0)
/*
결과값
숫자를 입력해주세요 => 1
입력된 숫자 : 1
*/
5. for와 while
do ~ while을 제외하고 for와 while은 비슷해보인다. for를 사용해 반복한 코드를 while로 구현할 수 있고 그 반대의 경우도 가능하다. 그럼에도 불구하고 굳이 나눠놓은 이유와 언제 사용용도가 무엇일까?
for | while | |
특징 | 시작과 종료시점을 지정 | 조건이 true와 false인지 판단 |
사용용도 | 반복해야하는 횟수를 알고 있을 때 | 논리적 연산을 통해 반복을 해야할 때 |
자신이 원하는 반복문을 골라 사용해도 상관은 없으나 각 반복문의 용도가 나누어져 있는만큼 용도에 맞게 사용하는 것이 좋다.
6. 무한루프
- 반복문에 주어진 조건이 항상 참이 되어 무한히 반복되는 현상
- 무한히 수행되는만큼 메모리가 사용되어 프로그램이 멈추게 된다.
반복문을 사용함에 따라 코드의 양이 줄고 가독성이 높아진다. 하지만 치명적인 문제를 낳게 되는데 그것이 무한루프 현상이다. for문도 while도 결국 조건이 참이면 코드가 코드가 실행되는데 간혹 조건을 잘못 설정하여 무한루프가 되면 프로그램 실행에 필요한 메모리가 반환되지않고 무한히 사용되어 프로그램이 멈추는 현상이 발생할 수 있다. 그런 경우 반복문의 조건을 수정하여 다시 실행하여야 한다. 따라서 반복문을 사용할 때는 반드시 어느 시점에 종료할 수 있도록 조건을 잘 판단하여 설정하여야 한다.