본문 바로가기
WebDev/JavaScript

[기초] JavaScript 컨트롤 구조(Control Structure)

by Naerrow 2024. 9. 6.

JavaScript의 컨트롤 구조는 프로그램의 흐름을 제어하는 데 사용되는 구문입니다. 이를 통해 조건에 따라 코드가 실행되거나, 반복문을 통해 특정 작업을 여러 번 수행할 수 있습니다. 대표적인 컨트롤 구조는 조건문, 반복문, 분기문 등이 있습니다.

 

 

1. 조건문 (Conditional Statements)

조건에 따라 다른 코드를 실행하는 구조입니다.

 

  • if, else if, else

if 문은 조건이 true일 때 코드를 실행합니다. 추가적으로 else if와 else를 통해 조건을 확장할 수 있습니다.

let age = 20;

if (age >= 18) {
  console.log("Adult");
} else if (age >= 13) {
  console.log("Teenager");
} else {
  console.log("Child");
}
  • 설명:
    • if: 조건이 true일 경우 실행.
    • else if: 첫 번째 조건이 false일 때 다른 조건을 검사.
    • else: 모든 조건이 false일 때 실행.

 

  • 삼항 연산자 (ternary operator)

단순한 조건문을 한 줄로 작성할 수 있는 연산자입니다.

let age = 20;
let message = age >= 18 ? "Adult" : "Minor";
console.log(message);
  • 설명: 조건이 true면 첫 번째 값, false면 두 번째 값이 반환됩니다.

 

  • switch

하나의 변수에 대해 여러 값을 비교하고, 각각의 경우에 맞는 코드를 실행합니다.

let day = 2;

switch (day) {
  case 1:
    console.log("Monday");
    break;
  case 2:
    console.log("Tuesday");
    break;
  case 3:
    console.log("Wednesday");
    break;
  default:
    console.log("Invalid day");
}
  • 설명: switch 문은 주어진 값이 case에 맞는지 확인하고 해당 블록을 실행합니다. default는 모든 case가 만족하지 않을 때 실행됩니다. break 문을 생략하면 다음 case로 "fall through" (즉, 다음 case도 실행)됩니다. break가 없으면 그 밑에 있는 코드가 계속 실행될 수 있으므로 항상 break를 추가하는 것이 좋습니다.

 


2. 반복문 (Loops)

코드를 여러 번 반복해서 실행하는 구조입니다.

 

  • for 문

지정된 횟수만큼 반복할 때 사용됩니다.

for (let i = 0; i < 5; i++) {
  console.log(i);
}
  • 설명:
    • i = 0: 초기값 설정.
    • i < 5: 조건이 참일 때 반복.
    • i++: 매 반복 후 i를 1씩 증가.

 

  • while 문

조건이 true인 동안 계속해서 반복합니다.

let i = 0;
while (i < 5) {
  console.log(i);
  i++;
}
  • 설명: while은 조건이 true인 동안 블록 안의 코드를 반복 실행합니다.

 

  • do...while 문

블록 내부의 코드를 한 번은 무조건 실행한 후, 조건을 검사하여 반복합니다.

let i = 0;
do {
  console.log(i);
  i++;
} while (i < 5);
  • 설명: do...while은 조건을 나중에 검사하기 때문에 코드가 최소 한 번은 실행됩니다.

 


3. 분기문 (Branching Statements)

반복문을 제어하거나, 특정 블록의 실행을 건너뛸 때 사용됩니다.

 

  • break

반복문이나 switch 문에서 현재 루프나 블록을 완전히 종료합니다.

for (let i = 0; i < 5; i++) {
  if (i === 3) break;
  console.log(i);
}
  • 설명: i가 3일 때 루프가 종료됩니다.

 

  • continue

현재 반복을 건너뛰고 다음 반복을 실행합니다.

for (let i = 0; i < 5; i++) {
  if (i === 3) continue;
  console.log(i);
}
  • 설명: i가 3일 때 출력하지 않고, 다음 반복으로 넘어갑니다.

 

  • return

함수 내에서 즉시 실행을 중지하고, 값을 반환합니다.

function add(a, b) {
  console.log("Before return");
  return a + b;	// 함수 실행 종료
  console.log("After return"); // 실행되지 않음
}
  • 설명: return은 값을 반환하면서 함수 실행을 종료합니다.

 


4. 예외 처리 (Exception Handling)

프로그램에서 발생할 수 있는 오류를 처리하는 구조입니다.

 

  • try...catch

예외가 발생할 수 있는 코드를 안전하게 처리하는 구조입니다.

try {
  let result = 10 / 0;
  console.log(result);
} catch (error) {
  console.log("An error occurred: " + error.message);
}
  • 설명: try 블록에서 예외가 발생하면 catch 블록이 실행됩니다.

 

  • throw

프로그램에서 직접 오류를 발생시킬 때 사용합니다.

function checkAge(age) {
  if (age < 18) {
    throw new Error("Age must be 18 or older");
  }
  return "Access granted";
}

try {
  console.log(checkAge(15));
} catch (error) {
  console.log(error.message);
}
  • 설명: throw를 통해 예외를 발생시키고, catch에서 그 예외를 처리할 수 있습니다.

 


요약

  • 조건문은 특정 조건에 따라 코드를 실행할지 결정하는 데 사용됩니다.
  • 반복문은 동일한 코드를 여러 번 실행하고, 특정 조건을 만족할 때까지 반복합니다.
  • 분기문은 반복이나 흐름을 제어하는 데 사용되며, break, continue, return이 대표적입니다.
  • 예외 처리는 오류가 발생했을 때 안전하게 처리할 수 있는 구조를 제공합니다.

이러한 컨트롤 구조를 통해 JavaScript에서 프로그램의 흐름을 세밀하게 제어할 수 있습니다.