1. 반복문이란?
반복문은 동일한 작업을 여러 번 실행하거나 조건에 따라 작업을 반복하는 데 사용됩니다. 이는 코드의 중복을 줄이고 가독성을 높이는 데 매우 유용합니다.
예시로, 상품 목록을 출력하거나 특정 횟수만큼 데이터를 처리할 때 반복문을 사용할 수 있습니다.
2. 반복문의 종류
2.1. while 반복문
- 특징: 조건을 먼저 확인하고, 조건이 truthy인 동안 본문을 실행합니다.
- 문법:
- while (condition) { // 반복문 본문 }
예시 1: 기본적인 while 반복문
let i = 0;
while (i < 3) {
console.log(i); // 0, 1, 2 출력
i++;
}
설명:
- i < 3이 true인 동안 반복문 본문을 실행합니다.
- 조건이 false가 되면 반복문이 종료됩니다.
예시 2: 조건 축약
let i = 3;
while (i) {
console.log(i); // 3, 2, 1 출력
i--;
}
설명:
- 숫자 0은 falsy로 평가되므로, i가 0이 되면 반복문이 종료됩니다.
2.2. do...while 반복문
- 특징: 본문을 최소 1회 실행한 후 조건을 확인합니다.
- 문법:
- do { // 반복문 본문 } while (condition);
예시
let i = 0;
do {
console.log(i); // 0, 1, 2 출력
i++;
} while (i < 3);
설명:
- 조건에 상관없이 본문을 최소 1번 실행합니다.
2.3. for 반복문
- 특징: 초기화 → 조건 확인 → 본문 실행 → 단계(step) 순서로 동작합니다.
- 문법:
- for (begin; condition; step) { // 반복문 본문 }
예시 1: 기본적인 for 반복문
for (let i = 0; i < 3; i++) {
console.log(i); // 0, 1, 2 출력
}
동작 과정:
- 초기화: 반복문 진입 시 한 번 실행 (let i = 0).
- 조건 확인: i < 3이 false일 경우 반복문 종료.
- 본문 실행: console.log(i) 실행.
- 단계 수행: i++ 실행 후 다시 조건 확인.
예시 2: 구성 요소 생략
let i = 0;
for (; i < 3; i++) {
console.log(i); // 0, 1, 2 출력
}
설명:
- for문의 구성 요소(초기화, 조건, 단계)는 생략 가능하지만, ;는 필수입니다.
3. 반복문 제어
3.1. break로 반복문 중단
- 특징: 조건과 상관없이 반복문을 즉시 종료합니다.
예시: 사용자가 숫자를 입력할 때 합계 계산
let sum = 0;
while (true) {
let value = +prompt("숫자를 입력하세요.", "");
if (!value) break; // falsy 값 입력 시 종료
sum += value;
}
console.log("합계:", sum);
3.2. continue로 다음 반복으로 이동
- 특징: 현재 이터레이션을 종료하고 다음 반복으로 이동합니다.
예시: 홀수만 출력
for (let i = 0; i < 10; i++) {
if (i % 2 === 0) continue; // 짝수는 건너뜀
console.log(i); // 1, 3, 5, 7, 9 출력
}
4. 중첩 반복문과 레이블
4.1. 레이블과 break
- *레이블(label)**을 사용해 여러 중첩 반복문을 한 번에 제어할 수 있습니다.
- 문법:
- labelName: for (...) { for (...) { if (condition) break labelName; // 특정 레이블의 반복문 종료 } }
예시
outer: for (let i = 0; i < 3; i++) {
for (let j = 0; j < 3; j++) {
let input = prompt(`(${i}, ${j})의 값`, "");
if (!input) break outer; // 'outer' 레이블 종료
}
}
console.log("완료!");
4.2. 레이블과 continue
예시
outer: for (let i = 0; i < 3; i++) {
for (let j = 0; j < 3; j++) {
if (i + j > 3) continue outer; // 'outer' 레이블의 다음 반복으로 이동
console.log(`(${i}, ${j})`);
}
}
5. 반복문의 선택 기준
반복문 특징 사용 시기
while | 조건을 먼저 확인한 후 반복 실행 | 반복 횟수가 명확하지 않을 때 |
do...while | 본문을 최소 1회 실행 후 조건 확인 | 반복이 최소 1번은 실행되어야 할 때 |
for | 초기화, 조건, 단계를 한 줄에 표현 가능 | 반복 횟수가 명확하고 조건이 명확할 때 |
6. 주의 사항
- 무한 반복문 방지:
while (true) { if (stopCondition) break; }
- 종료 조건을 명확히 설정해야 무한 반복을 방지할 수 있습니다.
- 구성 요소 생략 시 주의:
- for문에서 구성 요소를 생략해도 ;는 필수입니다.
- break와 continue:
- 반복문 외부에서 사용 시 문법 오류가 발생합니다.
7. 요약
- 반복문의 종류와 사용법:
- while: 조건을 먼저 확인.
- do...while: 본문 실행 후 조건 확인.
- for: 초기화, 조건, 단계를 포함.
- 제어문:
- break: 반복문 즉시 종료.
- continue: 다음 반복으로 이동.
실무 예제: 데이터를 배열로 분류하기
문제: 배열에서 짝수와 홀수를 나누어 다른 배열에 저장하는 코드 작성.
코드:
const numbers = [1, 2, 3, 4, 5, 6];
const evens = [];
const odds = [];
for (i = 0; i < numbers.length; i++) {
if (numbers[i] % 2 === 0) {
evens.push(numbers[i]);
} else {
odds.push(numbers[i]);
}
}
console.log("짝수:", evens); // [2, 4, 6]
console.log("홀수:", odds); // [1, 3, 5]
'바닐라 코드 > Java Script' 카테고리의 다른 글
16. 함수 (1) | 2024.12.24 |
---|---|
15. switch문 (0) | 2024.12.23 |
13. nullish 병합 연산자 (??) (0) | 2024.12.18 |
12. 논리연산자 (0) | 2024.12.17 |
11. if와 '?' (0) | 2024.12.16 |