每当我写一个超过6个字母的名字时,它仍会打印
这不是一个很长的名字
而不是
这是一个很长的名字
我知道这必须是一个基本问题,它可能非常简单,但我无法让它发挥作用。我会很感激为什么它没有按照预期执行的任何想法。
let myName = prompt('What is your name?');
if (myName.length <= 3) {
document.write('That is such a short name!');
}
else if (3 < myName.length < 6) {
document.write('That isn\'t a very long name');
}
else if (myName.length >= 6) {
document.write('That\'s such a long name!');
}
else {
document.write('Nop');
}
答案 0 :(得分:2)
你的一个表达方式并没有按照你的想法做到。
else if (3 < myName.length < 6) {
3 < myName.length
和myName.length < 6
评估为true,因此它们几乎总是被击中。
要检查多个条件,您需要一个“和”运算符,在Javascript中为&&
else if (myName.length > 3 && myName.length < 6) {
注意我们如何翻转表达式,以便myName.length
始终是第一个。这样可以更容易朗读
如果myName.length大于3且myName.length小于6 ...
答案 1 :(得分:1)
我想补充一点 - 因为你正在使用'else'语句 - 大约一半的条件都是多余的。
例如,您的第一个条件检查字符串的大小是否小于或等于3;这没关系。
然而,只有当长度大于3时,才会测试您的第二个条件,因此您无需再次检查。
以下是您逻辑的简化版本:
let myName = prompt('What is your name?');
if (myName.length <= 3) {
document.write('That is such a short name!');
}
else if (myName.length < 6) {
document.write('That isn\'t a very long name');
}
else {
document.write('That\'s such a long name!');
}