我正在尝试使用该函数来打印与代码一致的语句,但是这是说某些未表示的数字正在打印出大小而不是N / A
我用过||或&&
var shirtWidth = 23;
var shirtLength = 30;
var shirtSleeve = 8.71;
// Write your if/else code here
if (shirtWidth===18 || shirtWidth <20 && shirtLength===28 || shirtLength < 29 && shirtSleeve===8.13 || shirtSleeve <8.38 ){
console.log("S");
}else if (shirtWidth===20 || shirtWidth<22 && shirtLength===29 || shirtLength <30 && shirtSleeve===8.38 || shirtSleeve <8.63){
console.log("M");
}else if (shirtWidth===22 || shirtWidth <24 && shirtLength===30 || shirtLength <31 && shirtSleeve===8.63 || shirtSleeve < 8.88){
console.log("L");
}else if (shirtWidth===24 || shirtWidth <26 && shirtLength===31 || shirtLength < 33 && shirtSleeve===8.88 || shirtSleeve < 9.63){
console.log("XL");
}else if (shirtWidth===26 || shirtWidth < 28 && shirtLength===33 || shirtLength<34 && shirtSleeve===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");
}
期望的衬衫宽度为18,衬衫长度为29,衬衫袖子为8.47,以记录N / A大小,但收到S
答案 0 :(得分:1)
使用OR运算子时,例如a===1 || b===1
,当两个条件之一为true时,条件为true。
所以当你说:
if (shirtWidth === 18 || ...) {
console.log("S");
}
当衬衫宽度= 18时,将不会查看||
之后的所有代码。
还请记住&&
和||
的优先级,即使不需要使用方括号,也很有用:
if (shirtWidth===18
|| (shirtWidth < 20 && shirtLength === 28)
|| (shirtLength < 29 && shirtSleeve === 8.13)
|| shirtSleeve < 8.38)