특정 조건이 성립되었을 때 그 조건에 해당하는 코드를 실행하게 하는 문법
If 구문
- If문 다음 괄호
()
에 참과 거짓을 판별할 조건을 작성한다.
let random = Math.random(); // 0 ~ 1 사이의 수를 랜덤으로 생성해주는 함수
if (random < 0.5) {
console.log("0.5보다 낮은 수가 생성됨!");
console.log(random);
}
if (random >= 0.5) {
console.log("0.5보다 크거나 같은 수가 생성됨!");
console.log(random);
}
Else if / Else 구문
- 조건문을 적은 순서대로 동작한다.
- if 문이 거짓일 때 다음 else if 문이 적용된다.
- 조건문이 참이 되는 순간 나머지 부분은 실행되지 않는다.
- else문은 모든 조건의 마지막에 온다.
- 매치되는 조건이 없을 때 마지막 항목으로 적용된다.
- 어떤 조건도 지정하지 않는다. 괄호 X
const score = 95;
if (age >= 90) {
console.log("A");
} else if (age >= 80) {
console.log("B");
} else if (age >= 70) {
console.log("C");
} else {
console.log("D");
}
조건부 네스팅
Nested Conditionals
- 조건 중첩하기
- 패스워드 조건: 1) 6자 이상, 2) 공백 없음
- 공백이 없는 패스워드 조건
indexOf()
활용. 공백이 없다면 -1이어야 함.
const password = prompt("please enter a new password");
// Password must be 6+ characters
if (password.length >= 6) {
// Password cannot include space
if (password.indexOf(' ') === -1) {
console.log("Valid Password!");
} else {
console.log("Password cannot contain spaces!");
}
} else {
console.log("Password too short! Must be 6+ characters");
}
- 중첩을 사용하면 무거워진다. → 다른 방법(AND) 있음
논리 함수 AND
Logical Operators
- 논리 연산자를 활용하면 다른 두 표현식을 합쳐 여러 논리를 하나로 결합함으로써 하나의 큰 논리를 형성할 수 있다.
AND
OR
NOT
AND &&
const password = prompt("Enter your password");
if (password.length >= 6 **&&** password.indexOf(' ') === -1) {
console.log("VALID PASSWORD!")
} else {
console.log("INCORRECT FORMAT FOR PASSWORD!")
}
- 좌항, 우항이 있고 문장이 참이 되려면 둘 다 참이어야 한다.
- 한쪽이 거짓으로 판명되면 문장 전체가 거짓이 된다.
- ⇒ 단락 평가(short circuit evaluation)
- 첫 번째가 거짓일 경우 바로 거짓으로 판단하고 평가 중단 (두 번째를 보는 것은 비용 낭비)
논리 함수 OR
OR ||
- 둘 중 하나만 참이어도 참이 된다.
true || true // true
true || false // true
false || true // true
false || false // false
true && true // true
true && false // false
false && true // false
false && false // false
// 0 - 5 FREE
// 5 - 10 CHILD $10
// 10 - 65 ADULT $20
// 65+ SENIOR free
const age = 8;
if (age >= 0 && age < 5 **||** age >= 65) { // 0 - 5 **OR** 65+
console.log("You get in for free!");
} else if (age >= 5 && age < 10) { // 5 - 10
console.log("You pay $10.");
} else if (age >= 10 && age < 65) { // 10 - 65
console.log("You pay $20.");
} else {
console.log("INVALID AGE!");
}
- AND는 OR보다 우선순위가 높다. ⭐
- 더 명확하게 하고 싶다면 괄호 사용
if ((age >= 0 && age < 5) || age >= 65)
논리 함수 NOT !
- 값을 반전시킨다.
!null // true
! (0 === 0) // false
!(3 <= 4) // false
const age = 45;
if (**!**(age >= 0 && age < 5 || age >= 65)) {
console.log("YOU ARE NOT A BABY OR A SENIOR!");
}
Switch 조건문
- another control-flow statement that can replace multiple if statements.
- 길어지는 if 조건문을 case별로 조건 일치 여부를 확인
- 일치하는 항목을 찾으면 스위치가 거기서부터 중단 지점까지 계속 코드를 실행
- ⇒ break 필요
- 아무것도 일치하지 않을 땐 default
- 수많은 케이스를 한꺼번에 확인할 때는 편리하다.
- 하지만 대부분 상황의 논리와 들어맞지 X. 자주 쓰이진 않음.
let country = "ko";
switch (country) {
case "ko":
console.log("한국");
break;
case "uk":
console.log("영국");
break;
default:
console.log("미 분류");
break;
}
'JavaScript' 카테고리의 다른 글
[JS] 객체 (0) | 2022.07.02 |
---|---|
[JS] 배열 (0) | 2022.07.02 |
[JS] 연산자 (0) | 2022.06.29 |
[JS] 변수와 상수 (0) | 2022.06.29 |
[JS] 자료형 (0) | 2022.06.29 |
댓글