조건문
조건에 따라 코드를 실행여부를 결정할 수 있다
조건 분기
: 코드가 실행되는 흐름을 변경하는 것
이때의조건
은 불 자료형 : 비교연산자와 논리연산자를 활용해서 만든다
불 표현식의 값이 true
→ 중괄호 안의 문장 실행
false
→ 중괄호 안의 문장 무시
if (273 < 100) {
alert('273 < 100 => true')
}
alert('프로그램 종료')
// 현재 날짜와 시간을 갖는 객체 생성
const date = new Date()
// 현재 시간을 0~23 사이의 값으로 출력하는 메소드
const hour = date.getHours()
// if 조건문
if (hour < 12) {
// 표현식 hour < 12가 참일 때 실행한다
alert('오전입니다');
}
if (hour >= 12) {
// 표현식 hour >= 12가 참일 때 실행한다
alert('오후입니다');
}
else 구문 : 서로 반대되는 상황을 표현하는 구문
if 조건문과 마찬가지로
실행되는 문장이 하나일 때 → 중괄호 생략가능
여러 문장을 실행할 때 → 중괄호로 감싸야 한다
기본형태
if(불 값이 나오는 표현식) {
불 값이 참일 때 실행할 문장
} else {
불 값이 거짓일 때 실행할 문장
}
이렇게 정반대되는 조건을 검사할 때 if else 조건문
을 사용하면 if 조건문을 2번 사용하지 않아도 된다
if 조건문의 조건 하나를 처리하는 횟수가 줄어 → 실제 성능 향상에 조금 도움된다
// 변수 선언
const date = new.Date()
const hour = date.getHours()
// if 조건문
if (hour < 12) [
// 표현식 hour < 12 가 참일 때 실행
alert('오전입니다');
} else {
// 표현식 hour < 12 가 거짓일 때 실행
alert('오후입니다');
}
조건문 안에 조건문을 중첩해 사용하는 것
여러 번 중첩가능하다
기본형태
if (불 값이 나오는 표현식1) {
// 표현식 1이 참이면 실행
if (불 값이 나오는 표현식2) {
표현식 2가 참일 때 실행할 문장
} else {
표현식 2가 거짓일 때 실행할 문장
} else {
// 표현식 1이 거짓이면 실행
if (불 값이 나오는 표현식3) {
표현식 3이 참일 때 실행할 문장
} else {
표현식 3이 거짓일 때 실행할 문장
}
}
// 변수 선언 : const 키워드를 사용했는데 변수라 하는 이유는 뭘까
const date = new Date()
const hour = date.getHours()
// 중첩 조건문
if (hour < 11) {
// 표현식 hour < 11이 참일 때 실행
alert('아침 먹을 시간입니다');
} else {
// 표현식 hour < 11이 거짓일 때 실행
if (hour < 15) {
// 표현식 hour < 15 이 참일 때 실행
alert('점심 먹을 시간입니다');
} else {
// 표현식 hour < 15 이 거짓일 때 실행
alert('저녁 먹을 시간입니다');
}
}
if else if
조건문if 조건문의 조건이 한 문장이라면 중괄호를 생략해도 된다고 했는데
이 개념을 응용해서 중첨 조건문에서 중괄호를 생햑한 형태이다
if (불 표현식) {
문장
} else if (불 표현식) {
문장
} else if (불 표현식) {
문장
} else {
문장
}
기존의 중첩 조건문으로 만든 예제 →
if else if
조건문의 형태로 변환하는 방법
한 쌍의 중괄호를 지우면 된다
else {
if (hour < 15) {
alert('점심 먹을 시간입니다');
}
}
// 한 쌍의 중괄호 삭제
else if (hour < 15) {
alert('점심 먹을 시간입니다');
}
if else if
조건문 사용예제 : 아침, 점심, 저녁 시간대로 나눠서 출력const date = new.Date()
const hour = date.getHours()
if (hour < 11) {
alert('아침 먹을 시간입니다')
} else if (hour < 15) {
alert('점심 먹을 시간입니다')
} else {
alert('저녁 먹을 시간입니다')
}