Programming Language/Javascript

2020/09/30 - JS - 반복문

Juveloper 2020. 9. 30. 17:27

1. 반복문 : 동일하거나 비슷한 동작을 수행하기위해 동작 하나하나를 일일이 적는 것은 매우 비효율적이다.

 따라서 그러한 동작을 반복하도록 하기위한 반복문이 필요하다.

 

2. for문 : JS뿐만 아니라 다른 언어에서도 대표적으로 많이 쓰이는 반복문이다. 문법은 다음과 같다.

1
2
3
for (초기값; 조건; 단계) {
  // ... 반복문 본문 ...
}
cs

 

좀 더 구체적인 예시인 배열의 모든 원소를 더하는 반복문을 작성해보자.

1
2
3
4
5
6
7
8
9
10
11
12
13
let arr = [12345];
let sum = 0;
 
for (let i = 0; i < arr.length; i++) {
  sum += arr[i]
}
 
console.log(sum) // 15
 
//지금은 배열의 element가 5개라 일일이 더해줄 수도 있겠지만
//만약에 배열의 length가 100만이라고 생각하면 일일이 더해주는 것은
//매우 힘들 것이다.
//그렇기에 반복문을 활용하는 것이 현명하다.
cs

 

3. while문 : 마찬가지로 많이 활용되는 반복문이다. 문법은 다음과 같다.

1
2
3
4
5
6
while (조건) {
  // 코드
  // '반복문 본문(body)'이라 불림
}
//조건이 true이면 실행
//조건이 false이면 실행 
cs

 

마찬가지로 while을 이용해서 배열의 모든 원소를 더한 값을 구해보자.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
let i = 0;
let arr = [12345]
let sum = 0;
 
while (i < 5) {
  sum += arr[i]
  i++
}
 
console.log(sum) // 15
console.log(i) // 5
 
//i가 5가되는 순간 조건이 false가 되므로 반복중단
//조건문과 마찬가지로 조건이 truthy라도 while문 내부의 코드가 동작함
 
cs

 

4. break & continue : 반복문은 조건이 false면 실행이 중단되지만 만약 반복 도중에 반복문을 빠져나오고 싶거나

반복문안의 동작을 수행하지않고 다음 반복으로 넘어가고 싶을때 breakcontinue를 활용할 수 있다.

 

4 - 1) break 예제

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
let i = 0;
let arr = [1234567];
let sum = 0;
 
while (i < 7) {
  if (i === 5) {
    break;
  }
  sum += arr[i];
  i++;
}
 
console.log(sum); // 15
console.log(i); // 5
 
//break에 의해서 i가 5가되면 반복문을 중단함
//break가 없었다면 sum = 28이 되었겠지만
//break로 탈출했기때문에 sum은 15가 됨.
cs

 

4 - 2 ) continue 예제

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
let i;
let arr = [1234567];
let sum = 0;
 
for (i = 0; i < arr.length; i++) {
  if (i === 5) {
    continue;
  } else {
    sum += arr[i]
  }
}
 
console.log(sum); // 22
 
//continue에 의해서 i가 5가되면 해당 반복을 스킵!
//continue가 없었다면 sum = 28이 되었겠지만
//continue로 i가 5일때는 i가 바로 6이되도록
//만들었기 때문에 sum = 1 + 2 + 3 + 4 + 5 + 7 = 22
//즉 6을 더하고 싶지 않았다고 생각하면 됨.
cs