Development/Javascript

모던 자바스크립트 입문 - Chapter 7: 제어 구문 💻

madebydev 2025. 6. 22. 14:07

안녕하세요! 오늘은 자바스크립트의 핵심 개념 중 하나인 **제어 구문(Control Statements)**에 대해 알아보겠습니다. 제어 구문은 프로그램의 실행 흐름을 제어하는 중요한 요소로, 조건에 따라 다른 코드를 실행하거나 반복 작업을 수행할 때 사용됩니다! 🚀


📌 목차

  • 조건문(Conditional Statements)
  • 반복문(Loop Statements)
  • 점프문(Jump Statements)
  • 마무리 정리

📝 조건문 (Conditional Statments)

조건문은 주어진 조건에 따라 다른 코드를 실행하게 해주는 구문입니다

특정 상황에서만 특정 코드를 실행하고 싶을 때 사용해요!

1️⃣ if문 - 가장 기본적인 조건문

let score = 85;

if (score >= 90) {
    console.log("A학점입니다!");
} else if (score >= 80) {
    console.log("B학점입니다!");
} else if (score >= 70) {
    console.log("C학점입니다!");
} else {
    console.log("더 열심히 공부하세요!");
}
// 출력: "B학점입니다!"

 

특징:

  • 조건이 true일 때만 코드 블록 실행
  • else if로 여러 조건 체크 가능
  • else는 모든 조건이 false일 때 실행

2️⃣ switch문 - 여러 값 중 하나와 일치하는지 확인

let day = "월요일";

switch (day) {
    case "월요일":
        console.log("한 주의 시작!");
        break;
    case "화요일":
        console.log("화이팅!");
        break;
    case "수요일":
        console.log("수요일은 힘들어요");
        break;
    case "목요일":
        console.log("거의 다 왔어요");
        break;
    case "금요일":
        console.log("불금이다!");
        break;
    case "토요일":
    case "일요일":
        console.log("주말이에요!");
        break;
    default:
        console.log("잘못된 요일입니다");
}
// 출력: "한 주의 시작!"

 

특징:

  • 하나의 표현식을 여러 값과 비교
  • break문을 사용하여 case 빠져나가기
  • default는 일치하는 case가 없을 때 실행

📝 반복문(Loop Statements)

반복문은 특정 코드를 여러 번 실행할 때 사용합니다.

같은 작업을 반복해야 할 때 매우 유용해요!

1️⃣ for문 - 횟수를 알 때 사용

// 기본 for문
for (let i = 0; i < 5; i++) {
    console.log(`${i + 1}번째 반복`);
}
// 출력: 1번째 반복, 2번째 반복, 3번째 반복, 4번째 반복, 5번째 반복

// 배열과 함께 사용
const fruits = ["사과", "바나나", "오렌지"];
for (let i = 0; i < fruits.length; i++) {
    console.log(`${i + 1}. ${fruits[i]}`);
}
// 출력: 1. 사과, 2. 바나나, 3. 오렌지

2️⃣ while문 - 조건이 true인 동안 반복

let count = 0;

while (count < 3) {
    console.log(`카운트: ${count}`);
    count++;
}
// 출력: 카운트: 0, 카운트: 1, 카운트: 2

// 사용자 입력 받기 (예시)
let password = "";
while (password !== "1234") {
    password = prompt("비밀번호를 입력하세요:");
    if (password !== "1234") {
        console.log("틀렸습니다. 다시 시도하세요.");
    }
}
console.log("로그인 성공!");

3️⃣ do-while문 - 최소 한 번은 실행

let number;

do {
    number = parseInt(prompt("1부터 10 사이의 숫자를 입력하세요:"));
    if (number < 1 || number > 10) {
        console.log("잘못된 숫자입니다.");
    }
} while (number < 1 || number > 10);

console.log(`올바른 숫자 ${number}를 입력했습니다!`);

4️⃣ for-in문 - 객체의 속성 순회

const person = {
    name: "김개발",
    age: 25,
    job: "개발자",
    city: "서울"
};

for (let property in person) {
    console.log(`${property}: ${person[property]}`);
}
// 출력: name: 김개발, age: 25, job: 개발자, city: 서울

// 배열에서 사용 (권장하지 않음)
const colors = ["빨강", "파랑", "노랑"];
for (let index in colors) {
    console.log(`${index}: ${colors[index]}`);
}
// 출력: 0: 빨강, 1: 파랑, 2: 노랑

📝 점프문 (Jump Statements)

점프문은 프로그램의 실행 흐름을 변경하는 구문입니다

반복문을 제어하거나 함수에서 값을 반환할 때 사용해요!

1️⃣ break문 - 반복문이나 switch문 빠져나가기

// 반복문에서 break 사용
for (let i = 0; i < 10; i++) {
    if (i === 5) {
        console.log("5에서 멈춥니다!");
        break;
    }
    console.log(i);
}
// 출력: 0, 1, 2, 3, 4, 5에서 멈춥니다!

// 중첩 반복문에서 라벨과 함께 사용
outer: for (let i = 0; i < 3; i++) {
    for (let j = 0; j < 3; j++) {
        if (i === 1 && j === 1) {
            break outer; // 외부 반복문까지 종료
        }
        console.log(`i: ${i}, j: ${j}`);
    }
}

2️⃣ continue문 - 현재 반복 건너뛰기

// 짝수만 출력하기
for (let i = 0; i < 10; i++) {
    if (i % 2 !== 0) {
        continue; // 홀수면 건너뛰기
    }
    console.log(i);
}
// 출력: 0, 2, 4, 6, 8

// 배열에서 특정 값 제외하고 처리
const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
for (let num of numbers) {
    if (num === 5) {
        continue; // 5는 건너뛰기
    }
    console.log(num * 2);
}
// 출력: 2, 4, 6, 8, 12, 14, 16, 18, 20

3️⃣ return문 - 함수 실행 종료하고 값 반환

function findFirstEven(numbers) {
    for (let num of numbers) {
        if (num % 2 === 0) {
            return num; // 첫 번째 짝수 찾으면 반환하고 함수 종료
        }
    }
    return null; // 짝수가 없으면 null 반환
}

console.log(findFirstEven([1, 3, 5, 8, 9])); // 8
console.log(findFirstEven([1, 3, 5, 7]));    // null

// 조건에 따른 early return
function validateUser(user) {
    if (!user) {
        return "사용자 정보가 없습니다";
    }
    
    if (!user.name) {
        return "이름이 필요합니다";
    }
    
    if (user.age < 0) {
        return "나이는 0 이상이어야 합니다";
    }
    
    return "유효한 사용자입니다";
}

📚 마무리 정리

오늘 배운 제어 구문들을 정리하면:

조건문은 특정 조건에 따라 다른 코드를 실행할 때 사용합니다.

  • if문: 가장 기본적인 조건 분기
  • switch문: 여러 값 중 하나와 일치하는지 확인
  • 삼항 연산자: 간단한 조건문을 한 줄로 표현

반복문은 같은 작업을 여러 번 반복할 때 사용합니다.

  • for문: 횟수를 알 때 사용
  • while문: 조건이 참인 동안 반복
  • do-while문: 최소 한 번은 실행
  • for-in문: 객체 속성 순회

점프문은 프로그램의 실행 흐름을 제어합니다.

  • break: 반복문이나 switch문 종료
  • continue: 현재 반복 건너뛰기
  • return: 함수 실행 종료하고 값 반환

💡 오늘 새롭게 알게 된 것

  •  

🤔 어려웠던 점

  • 중첩된 반복문에서 break와 continue의 동작 방식이 복잡했어요
  • 언제 어떤 반복문을 사용해야 하는지 판단하는 것이 자주 헷갈리고 있어요

🎯 다음 학습 계획

다음 포스팅에서는 함수에 대해 알아보겠습니다.