제어 구조
JavaScript 제어 구조
개요
JavaScript의 제어 구조(Control Structures)는 프로그램 실행 흐름을 조절하는 핵심 문법입니다. 조건에 따라 코드 블록을 실행하거나 반복적으로 작업을 수행할 때 사용되며, 논리적인 흐름을 구현하는 데 없어서는 안 될 요소입니다. 본 문서에서는 JavaScript에서 제공하는 주요 제어 구조를 분류하고, 각 구조의 활용법과 주의사항을 설명합니다.
조건문
if...else 문
가장 기본적인 조건문으로, 특정 조건이 참(true
)일 때 코드를 실행합니다.
let score = 85;
if (score >= 90) {
console.log("A등급");
} else if (score >= 80) {
console.log("B등급"); // 이 코드가 실행됨
} else {
console.log("C등급 이하");
}
- 비교 연산자:
===
,==
,>
,<
등 사용 가능 - 주의사항: 느슨한 비교(
==
)는 타입 변환으로 인한 예상치 못한 결과를 초래할 수 있으므로 엄격 비교(===
) 사용 권장
switch 문
여러 조건을 한 번에 처리할 때 유용합니다. 특정 값에 따라 분기점을 선택합니다.
let fruit = "사과";
switch (fruit) {
case "사과":
console.log("1000원"); // 이 코드가 실행됨
break;
case "바나나":
console.log("2000원");
break;
default:
console.log("가격 미확인");
}
- break 문: 분기 종료 후 다음 코드로 이동. 생략 시 fall-through 현상 발생
- default: 일치하는 케이스가 없을 때 실행
삼항 연산자(Ternary Operator)
단일 조건을 간결하게 처리할 수 있는 연산자입니다.
let age = 20;
let result = age >= 18 ? "성인" : "미성년자";
console.log(result); // "성인"
- 형식:
조건 ? 참일 때 값 : 거짓일 때 값
- 용도: 간단한 조건 처리에 적합. 복잡한 조건 시 가독성 저하 가능성
반복문
for 문
특정 횟수만큼 코드를 반복 실행할 때 사용됩니다.
for (let i = 0; i < 3; i++) {
console.log(i); // 0, 1, 2 출력
}
- 구조: 초기화 → 조건 평가 → 증감 → 반복
- ES6+:
let
사용 시 블록 스코프로 인한 안정성 향상
while / do...while 문
조건이 참일 동안 반복 실행합니다. do...while
은 최소 1회 실행 보장.
// while
let i = 0;
while (i < 3) {
console.log(i); // 0, 1, 2 출력
i++;
}
// do...while
let j = 0;
do {
console.log(j); // 0 출력
j++;
} while (j < 0);
for...in / for...of 문
객체나 배열의 요소를 순회할 때 사용됩니다.
const arr = [10, 20, 30];
// for...in: 인덱스 순회 (배열용 비추천)
for (let index in arr) {
console.log(index); // "0", "1", "2"
}
// for...of: 요소 값 순회
for (let value of arr) {
console.log(value); // 10, 20, 30
}
- for...in: 객체 프로퍼티 순회에 최적화
- for...of:
Symbol.iterator
구현된 이터러블 객체 지원
break / continue 문
반복문 내에서 흐름 제어를 위한 키워드입니다.
for (let i = 0; i < 5; i++) {
if (i === 2) continue; // 2는 건너뜀
if (i === 4) break; // 4에서 반복 종료
console.log(i); // 0, 1, 3
}
오류 처리 (try...catch...finally)
런타임 오류가 발생했을 때 프로그램을 비정상 종료하지 않고 처리할 수 있는 구조입니다.
try {
// 오류 발생 가능 코드
nonExistentFunction();
} catch (error) {
console.error("오류 발생:", error.message); // "오류 발생: nonExistentFunction is not defined"
} finally {
console.log("항상 실행됨");
}
- try: 실행할 코드
- catch: 오류 객체 받음
- finally: 오류 유무 관계없이 항상 실행
관련 문서
이 문서는 JavaScript 제어 구조의 핵심 개념과 실무 활용법을 정리하였습니다. 조건문과 반복문은 알고리즘 구현의 기본 단위로, 오류 처리는 안정적인 코드 작성에 필수적입니다. 실제 개발 시 코드의 가독성과 유지보수성을 고려해 적절한 제어 구조를 선택하는 것이 중요합니다.
이 문서는 AI 모델(qwen-3-235b-a22b)에 의해 생성된 콘텐츠입니다.
주의사항: AI가 생성한 내용은 부정확하거나 편향된 정보를 포함할 수 있습니다. 중요한 결정을 내리기 전에 반드시 신뢰할 수 있는 출처를 통해 정보를 확인하시기 바랍니다.