코드를 작성할 때 특정 상황에 따라 로직을 다르게 구현해야하는 경우가 많이 발생합니다. 이런 경우 특정 조건에 따라 로직이 분기하게 되는데 이럴 때 조건문을 사용하게 됩니다.
조건문은 비교연산자를 사용한 조건의 Boolean 값에 따라 코드 블록을 컨트롤 할 수 있습니다.
if 조건문은 괄호 안에 조건을 평가 후 값이 true이면 코드 블록을 실행하고, false인 경우 코드 블록이 실행되지 않습니다.
function sayAge(age) {
if ( age === true ) {
console.log("저의 나이는" + age + "살 입니다.");
}
}
sayAge(5) // "저의 날이는 5살 입니다."
조건이 여러가지인 경우에는 다음과 같이 else if, else를 통해 표현이 가능합니다.
function sayAge(age) {
if ( age < 20 ) {
console.log("저의 나이는" + age + "살 입니다.");
} else if( age <= 34 && age >= 20 ) {
console.log("저의 나이는" + age + "살이고 청년입니다.");
} else {
console.log("저의 나이는" + age + "살이고 청년이 아닙니다.");
}
}
sayAge(19) // "저의 나이는 19살 입니다."
sayAge(22) // "저의 나이는 22살이고 청년입니다.."
sayAge(40) // "저의 나이는 40살이고 청년이 아닙니다.."
조건이 여러개인 경우에는 switch문 사용이 가능합니다. case문의 조건이 맞는 경우 case문 아래의 코드가 실행되며 break문에 의해 코드가 종료됩니다.
만약 break가 없는 경우, 작성된 모든 코드가 실행됩니다.
// 이름을 받아 직업을 리턴하는 코드
function sayJob(name){
switch(name) {
case '철수': // name === '철수'
return "직업은 변호사입니다."
break;
case '상수': // name === '상수'
return "직업은 의사입니다."
break;
case '미연': // name === '미연'
return "직업은 판사입니다."
break;
}
}
sayJob('철수') // "직업은 변호사입니다."
sayJob('상수') // "직업은 의사입니다."
sayJob('미연') // "직업은 판사입니다."
삼항연산자는 세 개의 피연산자를 받는 유일한 연산자로 다음과 같이 표현합니다.
조건식 ? 반환값1 : 반환값2
//isStudent가 true이면 '무료'이 반환되고, false이면 '3,000원'가 반환
function getCharge(isStudent) {
return (isStudent ? '무료' : '입장료는 3,000원');
}
console.log(getCharge(true));
// '무료'
console.log(getFee(false));
// '3,000원