DevSSOM

자바스크립트 - 반복문 (while문, do ~ while, for문) 본문

JavaScript/기초

자바스크립트 - 반복문 (while문, do ~ while, for문)

데브쏨 2021. 7. 9. 22:50
반응형

반복문

만약에 구구단 2단의 코드를 짜본다면, 아래처럼 9줄의 코드가 필요하잖아.

console.log( 2 * 1 );
console.log( 2 * 2 );
console.log( 2 * 3 );
console.log( 2 * 4 );
console.log( 2 * 5 );
         ...
console.log( 2 * 9 );

근데, 반복문을 쓰면 그럴 필요가 없어. 중복되는 코드를 계속 줄줄이 쓰는 게 아니라, 효율적으로 코드를 짤 수 있게 돼. 어떤 값을 고정값으로 두고, 어떤 값을 가변값(바뀔 값)으로 두면 되는지만 파악해서 반복문을 써줘. 여기선 2가 고정 값, 1에서 9까지가 가변값이야. 이어서 반복문에 사용될 주요 문법들을 알아보면

 

 

while문

while문은 조건이 true이면, 명령을 계속 수행해. 

var num = 0;

while (num < 10) {       // num 값이 10이 되면 코드를 실행시키지 않아
  console.log(num);
  num++;                 // num에다가 1을 하나 올려줘
}

// 그래서 0 ~ 9까지 출력돼

위에서는 num이 10보다 작은 경우, num을 출력한 후에 num++를 하게 돼.

 

while문은 조건이 true인 경우 명령을 수행하기 때문에, 아무런 제한 없이 true인 값이 조건으로 주어지면, 무한루프에 빠질 수 있음. 

//무한 루프 예시
while (1 === 1) {
    console.log("devSsom")
}

 

 

do ~ while

do ~ while문은 조건에 상관없이 무조건 한 번은 실행시키는 반복문. while문의 조건을 뒤에다 쓰고, do라는 걸 앞에다가 써. while이 뒤에 있으니까, do를 먼저 실행하고, 조건은 나중에 따지게 돼.

var i = 12;

do {
  console.log(i);
  i++;
} while (i < 10);

// 결과값 : 12

위에선 조건상으로는 i가 12이기 때문에 i < 10 조건은 거짓이 돼. 그렇다면은 반복문은 실행이 되선 안되지만, do는 while의 조건이 참이든 거짓이든 상관이 없어. 무조건 한번은 실행시키겠다는 의미이기 때문에, console.log(i)에 12가 출력됨. 그리고 i++가 12++가 되고, while의 조건을 따져봤는데 i < 10 이게 거짓이었네? 그러면 이 반복문은 실행되지 않고 그 상태에서 종료돼.

var i = 5;

do {
  console.log(i);
  i++;
} while (i < 10);

// 결과값 : 5, 6, 7, 8, 9

 

 

for문

for문은 while문보다 더 간결하게 작성할 수 있는 반복문. for문은 ( ) 괄호 안에 조건 뿐만 아니라 변수 초기화값, ++ 이런 증감 표시도 넣어줄 수 있어.

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

// 결과값 : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

for문으로 구구단 2단 출력하기

for (var i = 0; i < 10; i++) {
  var num = 2;
  console.log(num * i);
}

// 결과값 : 0, 2, 4, 6, 8, 10, 12, 14, 16, 18

 

728x90
반응형
댓글