자바스크립트 if-else 질문
조회수 405회
수치에 따른 사이즈 출력문입니다만. M이 출력되야하는데 어째서 S가 출력되는지 모르겠습니다 ㅠㅠ
var shirtWidth = 20;
var shirtLength = 29;
var shirtSleeve = 8.38;
if((18 <= shirtWidth < 20) && (28 <= shirtLength < 29) && (8.13 <=shirtSleeve < 8.38) ){
console.log("S");
} else if((20 <= shirtWidth <22) && (29 <= shirtLength <30) && (8.38 <= shirtSleeve < 8.63)){
console.log("M");
} else if((22 <= shirtWidth <24) && (30 <= shirtLength <31) && (8.63 <= shirtSleeve < 8.88)){
console.log("L");
} else if((24 <= shirtWidth <26) && (31 <= shirtLength <32) && (8.88 <= shirtSleeve < 9.63)){
console.log("XL");
} else if((26 <= shirtWidth <28) && (32 <= shirtLength <33) && (9.63 <= shirtSleeve < 10.13)){
console.log("2XL");
} else if((shirtWidth >=28) && (shirtLength >=34) && (shirtSleeve >= 10.13)){
console.log("3XL");
}else{
console.log("N/A");
}
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
결론부터 말씀드리면...
a 비교연산자 b 비교연산자 c
위 코드는 엄밀히 따지면 문법 오류입니다. 다음처럼 작성하세요:
a 비교연산자 b && b 비교연산자 C
S가 출력되는 이유
문제의 코드는 이거겠죠?
var shirtWidth = 20; 18 <= shirtWidth < 20 // true
풀어서 보면 이렇게 됩니다:
18 <= 20 < 20 (18 <= 20) < 20 true < 20 Number(true) < 20 1 < 20 true
이유는 자바스크립트의 특징(연산자에 알맞도록 피연산자의 타입을 변환) 때문입니다.
댓글 입력