songin.dev님의 블로그

[Let's Get IT 자바스크립트 프로그래밍] 2장 기본 문법 배우기 - 반복문 본문

Developer/Langauge

[Let's Get IT 자바스크립트 프로그래밍] 2장 기본 문법 배우기 - 반복문

songin.dev 2022. 6. 23. 14:07
728x90
반복문

반복문

컴퓨터는 반복적인 작업을 하는데 매우 효율적입니다. 

모든 프로그래밍 언어는 반복을 처리하는 반복문을 가지고 있습니다. 조건문과 더불어 가장 많이 쓰이는 문입니다.

 

while 문으로 Hello, while! 100번 출력하기

while (조건식) {
  실행문;
}

while 문은 조건식이 참인 동안 반복해서 실행문을 실행합니다. 

if 문과 마찬가지로 실행문이 하나더라도 중괄호로 묶는 것을 권장합니다.

while(true) {
  console.log('Hello,while!');
} // 무한반복

위의 코드는 while 문의 조건식이 참이므로 무한히 실행됩니다. 

실제로 실행하면 어느 순간 웹 브라우저가 멈추게 되고, 다른 일을 할 수가 없게 됩니다.

이 같은 문제가 발생하지 않기 위해 프로그래밍할 때는 무한 반복되는 상황을 방지해야 합니다.

let i = 0;
while (i < 100) {
  console.log('Hello, while!');
  i++;
}

// Hello, while! 100번 출력

변수 i를 선언하고 조건식을 i < 100으로 줍니다. 사람이 숫자를 세듯이 console.log 할 때마다 i를 1씩 증가시킵니다. 

i가 100이 되면 조건식이 false가 되어 반복문지 종료됩니다.

프로그래밍에서는 숫자를 0부터 세기 때문에 변수에  첫 번째 값으로 1보다는 0을 사용할 것을 권장합니다.

 

for 문으로 반복해서 출력하기

반복문에는 while 문 외에도 for 문이 있습니다.

for (변수 초기화; 조건식; 종료식) {
  실행문;
}
for (let i = 0; i < 100; i++) {
  console.log('Hello, for!');
}

// Hello, for! 100번 출력

for 문의 시작(변수 초기화), 조건식은 생략할 수 있습니다.

for(;;) {
}
(무한 반복)

하지만 실제로 코드를 실행하면 무한 반복되어 프로그램이나 브라우저가 멈춰 버립니다.

 

1분 퀴즈
1부터 100까지 출력하는 코드를 for 문으로 작성하시오.

정답 및 해설

for(let i = 1; i <= 100; i++) {
  console.log(i);
}

// for문 소괄호 안에 시작하는 숫자 1을 변수 i로 초기화 한 후 100과 같거나 작을 때까지 반복을 실시한다.

break 문으로 반복문 멈추기

반복문으로 값을 하나씩 찾다가 원하는 값을 찾으면 반복문을 멈춰야 합니다.

이때 break문을 활용합니다.

let i = 0;
while(true) {
  if(i === 5){
    break;
    i++;
  }
}
console.log(i);

// 5

예제의 반복문은 while(true)이기 때문에 무한 반복됩니다. 하지만 실행문에 조건문을 통해 i가 5인 경우 break문을 통해 반복문은 종료됩니다.

무한 반복일 때는 for문 보다 while문을 더 많이 사용합니다. 그 이유는 코드가 간결하기 때문입니다.

continue 문으로 코드 실행 건너뛰기

반복문이 특정 조건에서만 실행되기를 원할 경우 continue 문을 사용합니다. continue 문을 사용하면 이후 코드는 건너뛰게 됩니다.

let i = 0l
while (i < 10) {
  i++;
  if (i % 2 === 0) {
    continue;
  }
  console.log(i);
}

/*
1
3
5
7
9
*/

예제는 홀수일 때만 출력하는 코드입니다.

i를 2로 나눈 값이 0이면 continue 문이 실행되어 이후 코드를 건너뛰게 됩니다.

 

중첩 반복문 사용하기

반복문 안에 반복문이 들어가는 경우를 중첩 반복문이라고 합니다.

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

/*
0 0
0 1
0 2
0 3
...
9 7
9 8
9 9
...
*/

중첩 반복문을 사용할 때

i가 0일 때 두 번째 반복문이 실행되며, 여기서 j가 0에서 9까지 증가한 후에 i가 1이 되고 다시 j가 0에서 9까지 증가한다. 이 과정이 반복됨.

1분 퀴즈
구구단을 출력하되, 결과에 짝수가 하나도 나오지 않게 해 보세요. continue 문을 사용하세요.
for(let i = 2; i <= 9; i++) {
  for(let j = 1; j <= 9; j++) {
    if(i % 2 === 0 || j % 2 === 0) {
      continue;
    }
    console.log(i + '*' + j + '=' + i * j);
 }
 
 /*
 i는 2단, j는 1부터 시작해서 9까지 반복하는 중첩 반복문 구성한 후 
 조건문에 해당하는 값이 나올때는 이후 코드는 생략
 i값과 j값 그리고 i와 j를 곱하는 값을 출력
 */

 

반응형
Comments