JavaScript/JavaScript

JavaScript 공부하기 04 (반복문) for, while

반응형

반복문은 가성비가 가장 좋다고 생각하는 언어입니다.

여러 언어에서 사용을 하고, 문법상 차이점도 거의 없기 때문입니다.

 

for

for 문은 가장 많이 사용된다해도 과언이 아닐텐데요

for(초기화 ; 조건 ; 증감식){
 //코드
}

위와같이 사용을 할 수 있습니다.

이 for 문의 사용법은 위에 나온거처럼 (초기화;조건;증감식) 이것들을 적어주어야 정상적으로 동작을 하게 됩니다.

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

이렇게 해주면 for문이 도는 조건이 i가 0부터 10보다 작을 때 까지 i를 1씩 증가시키는 조건을 가진 for 문이 생기게 됩니다.

여기서 i 를 콘솔에 for 가 돌아가는동안 계속 찍히는 코드를 적어보았습니다.

동작과정은 i 가 0 부터 10보다 작을때까지 0~9를 출력하게 되고 0~9는 총 10번이니 for 문이 총 10번 반복한걸 확인할 수 있습니다.

 

중첩도 가능합니다.

for(let i = 1 ; i < 10 ; i ++){ //1번
  for(let j = 1 ; j < 10 ; j ++){ //2번
    console.log(`i:${i} - j:${j}`);
  }
}

이 중첩 for 를 보시면 i와 j가 각각 9번씩 반복하는걸 알 수 있습니다.

이 코드를 출력하면

i:1 - j:1

i:1 - j:2

i:1 - j:3

이런식으로 j 만 증가를 하다가 어느 순간 i 가 2가 되고 j가 처음부터 다시 증가를 할 것 입니다.

왜 그러는걸까요?

이유는 for는 조건이 다 되어어야만 새롭게 출력이 됩니다. 그런데 1번을 돌던 중 2번으로 진입을 하게 되고 이 2번 for 문이 조건이 끝날때 까지 반복을 해야 2번조건이 끝나고 다시 1번 조건이 실행되기 때문입니다.

 

이런식으로 중첩을 하게 되고 이 중첩에 대해 이해를 완벽히 하셧다면 계속해서 중첩을 하실 수 있습니다.

 

 - 무한반복은 불가한가?

for 에서 무한반복 가능합니다.

for(;;){}

이런식으로 적는다면 무한반복이 가능합니다. 하지만 특정 조건인 상태에서 이 반복문을 종료를 하기 위해서는 새로운 조건을 걸어주어야 하는데 이 부분은 다음에 알아보도록 합시다.

 

while

이도 for와 같은 반복문 이지만 구현 방법이 완전 다릅니다.

let i=0;
while(i<10){
 i++;
}

방금 본 for 과는 많이 다른 형태입니다.

() 안에 모든 조건을 다 넣는 for 와 달리 while 은 여기저기 흩어져있습니다.

 

 - 이것도 무한루프가 가능한가?

for 에서 처럼 while도 무한반복 가능합니다.

while(true){

}

 

과연 이렇게 불편한걸 쓰긴 쓸까?

 

하는 생각이 들 수 있습니다.

여기서 이제 차이점이 확연히 들어나게 됩니다.

 

for - 반복 횟수를 알고 있을 때
while - 특정 조건을 만날 때 까지 반복을 시킬 때

 

이런 차이가 있습니다.

 

 

소스코드 : github

 

vpdls1511/JavaScriptPractice

1day 1commit challenge. Contribute to vpdls1511/JavaScriptPractice development by creating an account on GitHub.

github.com

반응형