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의 동작 방식이 복잡했어요
- 언제 어떤 반복문을 사용해야 하는지 판단하는 것이 자주 헷갈리고 있어요
🎯 다음 학습 계획
다음 포스팅에서는 함수에 대해 알아보겠습니다.