조건문
조건문(conditional statements)이란?
- 프로그램 내에서 주어진 표현식의 결과에 따라 별도의 명령을 수행하도록 제어하는 실행문을 말한다.
- 조건문 중에서 가장 기본이 되는 실행문은 if 문이다.
1. if ~ else 문
if ~ else
문은 주어진 조건식(boolean 값으로 평가될 수 있는 표현식)의 평가 결과, 즉 논리적 참 또는 거짓에 따라 실행할 코드 블록을 결정한다.
- 조건식의 평가 결과가
true
일 경우 if 문의 코드 블럭이 실행되고, false
일 경우 else 문의 코드 블럭이 실행된다.
if (조건식) {
조건식의 결과가 참일 때 실행하고자 하는 실행문;
} else {
조건식의 결과가 거짓일 때 실행하고자 하는 실행문;
}
function isOld(age) {
if (age >= 20) {
return true;
} else {
return false;
}
}
console.log(isOld(22));
console.log(isOld(18));
- else if 문은 if 문처럼 표현식을 설정할 수 있으므로, 중첩된 if 문을 좀 더 간결하게 표현 가능하다.
- 하나의 조건문 안에서 if 문과 else 문은 단 한번만 사용 가능하지만 else if 문은 여러번 사용되어 다양한 조건 설정이 가능하다.
if (조건식1) {
조건식1의 결과가 참일 때 실행하고자 하는 실행문;
} else if (조건식2) {
조건식2의 결과가 참일 때 실행하고자 하는 실행문;
} else {
조건식1의 결과도 거짓이고, 조건식2의 결과도 거짓일 때 실행하고자 하는 실행문;
}
function miniCalculator(num1, num2, operator) {
if (operator === '+') {
return num1 + num2;
}
else if (operator === '-') {
return num1 - num2;
}
else if (operator === '*') {
return num1 * num2;
}
else if (operator === '/') {
return num1 / num2;
}
}
console.log(miniCalculator(10,5,'+'))
console.log(miniCalculator(10,5,'-'))
console.log(miniCalculator(10,5,'*'))
console.log(miniCalculator(10,5,'/'))
2. 중첩 if 문
- 중첩 if 문은 바깥쪽에 있는 조건문의 조건식1을 만족해야만 안쪽에 있는 조건문인 조건식2를 검사한다. 만일 안쪽 if 문의 조건식2를 만족하지 않으면 바깥쪽 조건문인 조건식1의 중괄호 안에 있는 코드만 실행하고 종료된다.
if (조건식1) {
if (조건식2) {
실행문;
}
}
let useID = "silvery";
let usePW = "1234";
let id = prompt("아이디가 무엇인가요?");
let pw = prompt("비밀번호가 무엇인가요?");
if( useID == id ){
if( usePW == pw ){
document.write(id + "님 반갑습니다.");
} else {
document.write("비밀번호가 틀렸습니다.");
}
} else {
document.write("아이디가 일치하지 않습니다.");
}
3. switch 문
- switch문은 주어진 표현식을 평가하여 그 값과 일치하는 표현식을 갖는 case 문으로 실행 흐름을 옮긴다.
- case 문은 상황을 의미하는 표현식을 지정하고 콜론(
:
)으로 마친다. 그리고 그 뒤에 실행할 문들을 위치시킨다.
- switch 문의 표현식과 일치하는 case 문이 없다면 실행 순서는 default 문으로 이동하며, default 문은 선택사항으로 사용할 수도 있고 사용하지 않을 수도 있다.
switch (표현식) {
case 표현식1:
switch 문의 표현식과 표현식1이 일치하면 실행할 문;
break;
case 표현식2:
switch 문의 표현식과 표현식2가 일치하면 실행할 문;
break;
default:
switch 문의 표현식과 일치하는 case문이 없을 때 실행할 문;
}
- if ~ else 문의 조건식은 boolean 값으로 평가되어야 하지만
switch
문의 표현식은 boolean값 보다는 문자열이나 숫자 값이 경우가 많다. 즉 if ~ else문은 논리적 참, 거짓으로 실행할 코드 블럭을 결정한다.
switch
문은 논리적 참, 거짓보다는 다양한 상황(case)에 따라 실행할 코드 블럭을 결정할 때 사용한다.
let a = 4
switch (a) {
case 3:
console.log('비교하려는 값보다 작습니다');
break;
case 4:
console.log('비교하려는 값과 일치합니다');
break;
case 5:
console.log('비교하려는 값보다 큽니다');
break;
default:
console.log("어떤 값인지 파악되지 않습니다");
}
- 코드가 같은 case문은 같이 묶을 수도 있다.
function level(value) {
let result = "";
switch (value){
case 1:
case 2:
case 3:
answer = "Low";
break;
case 4:
case 5:
case 6:
answer = "Mid";
break;
case 7:
case 8:
case 9:
answer = "High";
break;
}
return answer;
}
level(1);
level(4);
level(8);