조건문
- 조건문 - 특정 조건에 따라 프로그램의 흐름을 제어하는 제어 구조입니다. 조건문은 조건식의 평가 결과에 따라 다른 코드 블록을 실행하도록 프로그램에 지시합니다.
- 조건식 - 조건식은 참(True) 또는 거짓(False) 으로 평가되는 표현식입니다. 조건식의 평가 결과에 따라 프로그램이 다른 경로로 분기됩니다. 주로
if
, else
, else if
, switch
등과 같은 형태로 사용됩니다.
- 동작문 - 동작문은 조건식이 참(True) 일 때 또는 거짓(False) 일 때 실행할 코드 블록입니다. 조건식의 결과에 따라 프로그램이 어떤 동작을 수행할지를 정의합니다. 중괄호
{}
로 둘러싸인 코드 블록으로 표현됩니다.
let x = 10;
if (x > 5) {
console.log("x는 5보다 큽니다.");
} else {
console.log("x는 5보다 작거나 같습니다.");
}
거짓(Falsy)으로 취급하는 값
- false: 불리언(boolean) 값 중 false는 명시적으로 거짓을 나타내는 값입니다.
- 0: 숫자 0은 거짓으로 취급됩니다.
- 빈 문자열 (''): 문자열이 비어있을 경우 거짓으로 간주됩니다.
- NaN: 숫자가 아닌 값(NaN)은 거짓으로 간주됩니다.
- null: null 값은 거짓으로 취급됩니다.
- undefined: 정의되지 않은(undefined) 값도 거짓으로 간주됩니다.
조건문의 문법
if 문
- 가장 기본적인 형태의 조건문으로, 주어진 조건이 참(True)이면 특정 코드 블록을 실행합니다. 만약 조건이 거짓이라면 해당 코드 블록은 실행되지 않습니다.
if (condition) {
}
let x = 10;
if (x > 5) {
console.log("x는 5보다 큽니다.");
}
if문의 중첩
if
문의 중첩은 하나 이상의 if
문을 다른 if
문 내에 중첩하여 복잡한 조건 처리를 가능하게 하는 것을 말합니다.
- 너무 많은 중첩은 코드의 가독성을 저하시킬 수 있습니다. 중첩이 깊어질수록 코드를 이해하기 어려워지므로, 가독성을 고려하여 중첩을 최소화해야 합니다.
if (condition1) {
if (condition2) {
} else {
}
} else {
}
let x = 10;
let y = 5;
if (x > y) {
console.log("x는 y보다 큽니다.");
if (x > 10) {
console.log("x는 10보다 큽니다.");
} else {
console.log("x는 10보다 작거나 같습니다.");
}
} else {
console.log("x는 y보다 작거나 같습니다.");
}
else 문
if
문의 조건이 거짓일 때 실행할 코드를 지정합니다.
if (condition) {
} else {
}
let x = 3;
if (x > 5) {
console.log("x는 5보다 큽니다.");
} else {
console.log("x는 5보다 작거나 같습니다.");
}
else if 문
- 여러 개의 조건을 검사할 때 사용하며, 이전 조건이 거짓일 때 다음 조건을 검사합니다.
- else if문을 활용할 때 else는 반드시 마지막에 붙여야 한다. 중간에 else문이 들어가게 되면 첫 번째 조건식만 평가하고 전체적인 조건문이 종료가 되기 때문이다.
if (condition1) {
} else if (condition2) {
} else {
}
let x = 7;
if (x > 10) {
console.log("x는 10보다 큽니다.");
} else if (x > 5) {
console.log("x는 5보다 크고 10보다 작거나 같습니다.");
} else {
console.log("x는 5보다 작거나 같습니다.");
}
switch 문
switch
문은 조건에 따라 다른 동작을 수행하는 제어문입니다. 이는 특정 변수나 표현식의 값을 평가한 후, 그 값에 따라 여러 case
중 하나를 선택해 해당 코드 블록을 실행합니다. 즉, 여러 조건 중에서 하나를 만족할 경우에 그에 해당하는 코드 블록을 실행합니다.
switch
문은 일반적으로 여러 개의 if-else if-else 문을 대체하여 가독성을 높이고 코드를 간결하게 만드는 데 사용됩니다. 특히, expression의 값이 여러 가지 고정된 값 중 하나일 때 효과적으로 사용됩니다.
switch
문의 구조
- expression : 평가할 변수나 표현식입니다.
- case : expression
의 값과 일치하는 경우 실행될 코드 블록입니다. 여러 개의 case
를 사용하여 여러 조건을 처리할 수 있습니다.
- default : expression
의 값이 어떤 case
와도 일치하지 않을 때 실행되는 코드 블록입니다. 이는 선택적으로 사용할 수 있습니다.
- break : case
블록의 끝에 break
문을 사용하여 다음 case
블록으로 넘어가지 않도록 합니다.
switch (expression) {
case value1:
break;
case value2:
break;
default:
}
let day = 3;
let dayName;
switch (day) {
case 1:
dayName = "Monday";
break;
case 2:
dayName = "Tuesday";
break;
case 3:
dayName = "Wednesday";
break;
case 4:
dayName = "Thursday";
break;
case 5:
dayName = "Friday";
break;
default:
dayName = "Unknown";
}
console.log("Today is " + dayName);