티스토리 뷰

반복문이란?

같은 행동을 계속 반복하는 것은 처음에는 쉽지만 나중에 가면 어려워집니다. 인간은 똑같은 행동을 계속 따라하기만 하면 미쳐버릴수도 있기 때문입니다.


모던타임즈나사만 조이다가 끝내는 미쳐버리게 됩니다.


하지만 반복하는 것을 아무렇지 않게, 아주 빠르게, 그리고 누구보다도 잘해내는 것이 있습니다. 바로 컴퓨터입니다. 반복문이란 어떤 구문이 계속해서 반복되는 것이죠. 컴퓨터는 반복문을 누구보다도 더 잘 수행합니다. 오늘은 while과 for라는 두가지 반복문에 대해서 알아보도록 하겠습니다. 

while 반복문

while (condition) {
    statements
} 


while문을 간단히 표현하면 소스코드와 같습니다. 조건(condition)이 참일 때 구문을 계속 수행하고, 조건이 거짓일 때는 아무일도 일어나지 않습니다. 그리고 반복문에는 위에 소스코드에는 나타나 있지 않지만 initialization(초기화)와 final-expression(마지막 표현식이라고 표현하겠습니다.)이 필요합니다.


let i=0; // initialization
while (i<10) {
    console.log(i);
    i++; // final-expression
} 


이 반복문을 실행하면 0~9까지의 숫자가 콘솔창에 나타납니다. 반복문에 쓰인 주석들을 확인해주세요. i값을 초기화 하지 않았다면 i가 어떤 변수인지 정의가 되지 않았기 때문에 에러가 날 것입니다. 그리고 마지막 i++(i의 값을 1 증가시킵니다.)이라는 값이 없다면 while문의 조건(i<10)이 계속 참이기 때문에 무한반복이 일어나게 됩니다.


i++은 i+=1과 같고, i의 값을 1 증가 시킵니다. 또 i--는 i-=1과 같고, i의 값을 1 감소 시킵니다. 


반복문의 구조가 이해가시나요? 초기화 -> 조건이 참인지 거짓인지 판별 -> 구문실행 -> 마지막 표현식 실행 -> 조건이 참인지 거짓인지 판별 -> 구문실행...... 이런식으로 계속 반복되게 됩니다. 

for 반복문

while문의 경우 초기화가 떨어져있었지만 (일반적으로) for문은 모든 것을 다 붙여서 사용합니다. 

for(let i=0; i<10; i++){
  console.log(i);
}


for 옆의 괄호 안에 초기화와 조건, 그리고 마지막 표현식이 한번에 있습니다. 그리고 각각을 ;(세미콜론)으로 구분했다는 것만 기억해두시면 됩니다. 나머지는 다 똑같습니다. 물론 for 옆에 다 붙여쓰지 않아도 됩니다. 


let i=0;
for(; i<10;){
  console.log(i);
  i++;
}


while문과 비슷한 형태로 적었습니다. 위의 코드도 에러없이 작동됩니다. 하지만 초기화를 다른곳에 했더라도 for문에서 ;(세미콜론)은 꼭 들어가야 에러가 나지 않습니다. 위에서 말했지만 일반적으로는 초기화나 조건, 마지막 표현식등을 모두 붙여서 사용합니다. 

for와 while중 어느 구문을 사용해야 할까요?

둘 다 똑같기 때문에 사실은 기호에 따른 문제라고 생각합니다. 하지만 반복 횟수를 정확히 알고 있을 때는 for문을 많이 사용하고, 정확히 모를때는 while문을 많이 사용합니다.



공감은 제작자에게 큰 힘이 됩니다.


댓글