-학점계산기
const score = 80;
if (score >= 90) { // 90점 이상
console.log('A+');
} else if (score >= 80) { // 90점 미만 80점 이상
console.log('A')
} else if (score >= 70) { // 80점 미만 70점 이상
console.log('B+')
}else if (score >= 60) { // 70점 미만 60점 이상
console.log('B')
}else { //60점 미만
console.log('F')
}
결과는 'A'
let first = true;
let second = false;
if (first){
console.log('첫 번째 조건 충족!');
if (second) {
console.log('두 번째 조건도 충족!');
} else {
console.log('두 번째 조건은 불충족!');
}
}else {
console.log('첫 번째 조건 불충족!')
}
코드해석: 위에서부터 내려오고 왼쪽에서 오른쪽으로 읽는다.
first는 ture라서 '첫번째 조건 충족!' 이라는 결과가 나오고
second는 false라서 '두 번째 조건은 불충족!' 이라는 결과가 나온다. 이런식으로 if문(조건문) 안에 또 다른 if문(조건문)을 쓸 수가 있다.
그런데 if문은 중첩을 줄이는 게 좋다.
위에 코드를 간결하게 재코딩
let first = true;
let second = false;
if (first && second) { //first와 second 모두 true 였다면
console.log('첫 번째 조건 충족!')
console.log('두 번째 조건도 충족!')
}else if (first) { // first만 true
console.log('첫 번째 조건 충족!')
console.log('두 번째 조건은 불충족!')
}else { //둘 다 false
console.log('첫 번째 조건 불충족!')
}
코드해석: 위에서부터 내려오게 되는데 if문에 설정된 first &&(그리고) second는 true 그리고 false 라 조건 충족이 안된다. 두번째로 else if문인 first는 true라 조건 충족이 되기때문에 결과로 '첫 번째 조건 충족!' 과 '두 번째 조건은 불충족!' 이 나타난다.
switch문의 기본 형식
switch (조건식) {
case 비교조건식:
동작문
}
-switch 문에는 조건식 두개가 사용됩니다. (조건식)과 비교 조건식 값이 일치(===) 하면 해당 동작문이 실행됩니다.
보통 조건식에 변수를 넣고, 비교 조건식에는 변수와 비교할 값을 넣습니다.
let value = 'B';
switch (value) {
case 'A':
console.log('A');
case 'B':
console.log('B');
case 'C':
console.log('C');
}
코드해석: 결과로 B만 출력될 것이라고 예상했지만, 실제로는 B와 C가 모두 출력 됩니다. switch문은 일치하는 case를 발견하면 일치 여부와 상관없이 그 아래 case 들의 동작문을 모두 실행합니다. 따라서 원하는 결과만 얻으려면 수동으로 case에서 빠져나와야 합니다. 이때 break문이 사용됩니다.
let value = 'B';
switch (value) {
case 'A':
console.log('A');
break;
case 'B':
console.log('B');
break;
case 'C':
console.log('C');
break;
}
이런식으로 break문을 써야지 'B'값만 나오게 된다.
let value = 'F';
switch (value) {
case 'A':
console.log('A');
break;
case 'B':
console.log('B');
break;
case 'C':
console.log('C');
break;
default:
console.log('아무것도 일치하지 않음');
}
else는 if나 else if 뒤에만 나오지만, default는 어디에나 위치할 수 있습니다.
let fruit = '사과'
switch (fruit) {
default:
console.log('뭔지 모르겠습니다!');
break;
case '사과':
console.log('사과입니다!');
break;
case '배':
console.log('배입니다!');
break;
case '포도':
console.log('포도입니다!');
break;
}
결과는 '사과입니다!'