본문 바로가기

JavaScript

Javascript - 반복문

반복문(while, for)

자바스크립트

2019-10-28 20:44:45


검색어: loop, iterate.

~하는 동안 반복적으로 작업을 할 것이다.

 

▶ while

while ( 조건 ) {

      반복해서 실행할 코드.

}

 

( 조건 ) 안에는 if 와 똑같이 Boolean 이 와야 한다.

Boolean 중 true가 조건에 온다면, true 가 false 가 될 때까지 코드를 반복하게 된다.

따라서 종료 조건을 제대로 작성해야 한다.

 

 * 자바스크립트를 이용해 텍스트 출력 방법.

<script>

document.write('Eunluck <br />');

</script>

 

ex)

while 뒤의 조건이 변함없이 true 이기 때문에 끝없이 Eunluck 이 작성된다. 삐임

변수 i 를 만들고, i 의 값을 반복문이 한 번 실행될 때마다, 1씩 증가시켰다.

i 값이 10이 되는 순간 멈춤. 0~9 까지 총 10번 반복해서 10개의 Eunluck이 생겼다.

 

▶ for 문

while 문의 로직상 문제가 있다.

while 은 세 부분이 필수적으로 들어가야 한다.

1. i 라는 변수의 초기화 부분, (var i = 0)

 * 이 부분은 맨 처음 실행될 당시 딱 한 번만 실행된다.

2. 반복적으로 실행될 때마다 i 값을 갱신하는 부분, (i = i+1)

3. 반복을 계속 진행할지 체크해주는 반복 조건 부분. (i < 10)

 

문제는 세 부분이 각각 떨어져 있어 중간에 다른 코드들이 들어가면 i 값이 바뀔 가능성이 생기고,

i 값을 찾기 힘들어 가독성 떨어짐. 보기에도 지저분할 수 있다.

이 세 부분을 문법적으로 하나의 패턴화 해놓은 것이 for문임.

 

for ( 초기화; 반복 조건; 반복 실행){     

               반복할 코드

}

 

위의 while 문을 for 문으로 바꿨다.

장점: 코드가 짧아졌고 가독성이 좋아짐. 중간에 문제 발생할 확률 낮아짐.

단점: 세 구성요소들이 어떤 순서로 쓰여야 하는지 기억해야 한다.

       구성요소들 사이에 ; 를 써야 한다. 맨 마지막엔 쓰지 않는다.

 

whil, for 는 서로 대체 가능하다.

 

* i =  i + 1

i++ 로 많이 사용된다.   

 

*i++ 와 ++i 의 차이점

var i = 0;

alert (i++)  : 첫 실행 시 0. 기존 i 값을 사용한 후, i 의 값을 1 증가시킨다.

alert (++i)  : 첫 실행 시 1. i의 값에 1을 증가시킨 후, 출력한다.

 

*변수 i 의 이름은 당연히 바꿔도 된다. 

 

 

▶ 반복문의 제어

1. break

결과: Eunluck 이 0~4 까지 5개 생긴다.

∵ 반복문이 실행되다가, i 가 5가 되는 순간, if 가 true 가 되면서 반복문이 완전히 멈춘 뒤,

for 문 밖을 읽기 시작한다.

*조건문 안에 반복문이 들어갈 수 있고, 반복문 안에 조건문이 들어갈 수도 있다.

 

2. continue

결과: 끝에 i 값으로 5를 가지는 Eunluck 을 제외하고, 0~9까지의 Eunluck 이 9개 생긴다.

∵ 반복문이 실행되다가, i 가 5가 되면, 잠시 종료됐다가, 재실행된다.

 

 

▶ 반복문의 중첩

결과: 00~99까지 100개의 Eunluck 이 생김.

∵ i 반복문이 실행되고, j 반복문이 실행될 당시 i, j 값은 0.

안쪽에 있는 j 가 먼저 10 이하의 값을 가질 때까지 반복하다가

10이 되는 순간 종료된 후, 바깥쪽인 i의 반복문이 실행된다.

그 후 다시 안쪽 j의 반복문이 시작되는데, j 값이 0으로 초기화되고 다시 반복.

* i, j 모두 숫자여서 i + j 를 하면 원래는 + 로 연산된 숫자가 표현돼야 하는데,

문자와 함께 결합되어있는 구조에서는 숫자 부분을 문자 데이터 형식으로 자동으로 변환해준다.

 

'JavaScript' 카테고리의 다른 글

Javascript - 배열  (0) 2023.03.13
Javascript - 함수  (0) 2023.03.13
Javascript - 조건문  (1) 2023.03.13
Javascript - 비교연산자  (0) 2023.03.13
Javascript - 변수, 주석  (1) 2023.03.13