앞에서 만들었던 코드이다. 하지만 위 코드는 좋은 코드라고 볼 수 없다. 왜나하면 불필요한 코드가 반복되기 때문이다. 만약 age = 22로 첫번째 if 문에서 참(true)으로 코드를 실행했다고 하더라도 두번째 if 문 코드를 실행한다. 불필요한 실행이다.
그래서 우리는 else if라는 조건문을 사용하는데,
if (조건식){
...;
}
else if(조건식){
...;
}
첫번째 if 문에서 참(true)이 나온다면 밑의 else if 문을 건너뛰게 된다. 만약 if 문에서 거짓(false)이 나온다면 밑의 else if 문을 실행한다. else if문으로 위 성년, 미성년 판별 코드를 다시 작성해보자.
하지만 위의 경우, else if보다 더 좋은 방법이 있는데 바로 else이다.
if (조건식){
...;
}
else{
...;
}
else문은 만약 첫번째 if문에서 거짓(false)가 나올경우, 바로 else문 안의 코드를 실행하는데, else if와의 차이점은 굳이 불필요한 조건식을 한 번더 컴퓨터가 계산할 필요가 없는 것이다.
위 코드에서 변수의 값이 있으면 이 값은 20보다 크거나 같음, 또는 작음 두가지 선택지밖에 없기 때문에 만약 변수 age >= 20이 거짓이 나왔다면 당연히 변수 age의 값은 20보다 작을 것이다. 따라서 아래와 같은 코드가 가장 좋은 방법이라고 할 수 있다.
console.clear();
let age = 5;
if (age >= 60){
console.log("60대 이상입니다.");
}
else if (age >= 50){
console.log("50대 이상입니다.");
}
else if (age >= 40){
console.log("40대 이상입니다.");
}
else if (age >= 30){
console.log("30대 이상입니다.");
}
else if (age >= 20){
console.log("20대 이상입니다.");
}
else if (age >= 10){
console.log("10대 이상입니다.");
}
else{
console.log("유아/아동 입니다");
}
출력:
"유아/아동 입니다"
조건식 안은 참(true) 또는 거짓(false) 두가지인데 >,<,>=,<=외에도 이를 도출하는 기호가 여러가지가 있다.
a == b -> a와 b가 같으면 참, 다르면 거짓
a != b -> a와 b가 다르면 참, 같으면 거짓
!a -> a가 참이면 거짓, 거짓이면 참
a && b -> a, b가 모두 참이면 참, 하나라도 거짓이면 거짓
a || b -> a, b중 하나라도 참이면 참, 모두 거짓이면 거짓
위 내용을 바탕으로 아래 식들의 참, 거짓을 판별해보자.
a = 10
a == 10 - 참
a != 10 - 거짓
a > 10 - 거짓
a >= 10 - 참
b = 10
a == b - 참
c = a != b
c - 거짓
c == false - 참
!c - 참
!(!c) - 거짓
d = true
c != d - 참
c && d - 거짓
c || d - 참
c == false && d - 참
c || c - 거짓
false || false - 거짓
1 == 1 && 2 == 2 && 3 == 3 && 4 == 5 - 거짓
1 == 1 && 2 == 2 && 3 == 3 && 4 == 5 || true - 참