你好,我需要有人告诉我在这行代码中我做错了什么
else if((x%3===0) && (x%5===0))
{
console.log("JuliaJames");
显示" julia"而不是" JuliaJames"
var x=1;
while(x<=20)
{
if (x%3===0)
{
console.log("Julia");
}
else if(x%5===0)
{
console.log("James");
}
else if((x%3===0) && (x%5===0))
{
console.log("JuliaJames");
}
else if(!(x%3===0 && x%5===0))
{
console.log(x);
}
x=x+1;
}
答案 0 :(得分:0)
只有先前的else if
不被执行才会执行x
,所以如果if
确实可以被3整除,它将会执行第一个if
并且它不会继续评估任何其他条件。
一种解决方案是将更严格的{{1}}陈述放在最上面(即从3&amp;&amp; 5开始)
答案 1 :(得分:0)
一旦条件为raiseModal(ev: any){
let input: string = event.target.value;
if(ev.keyCode == 13){ // can also be (ev.key == "Enter")
if(input.length == 10){
// OPEN MODAL FOR 10 DIGITS
} else if (input.length == 12) {
// OPEN MODAL FOR 12 DIGITS
} else if (input.length == 15) {
// OPEN MODAL FOR 15 DIGITS
} else {
// ERROR: INPUT LENGTH INVALID
};
};
}
,其他人就会陷入true
结构。
您需要采取其他方法,首先检查最复杂的情况,然后检查复杂性较低的情况。
最后一次检查不是必需的,因为它是您需要显示结果的部分,因为没有其他检查是else if
。
true
&#13;
var x = 1;
while (x <= 20) {
if ((x % 3 === 0) && (x % 5 === 0)) {
console.log("JuliaJames");
} else if (x % 3 === 0) {
console.log("Julia");
} else if (x % 5 === 0) {
console.log("James");
} else {
console.log(x);
}
++x;
}
&#13;
答案 2 :(得分:0)
尝试手动解析算法并验证您的步骤与程序正在执行的步骤相同。您输出错误的原因是您设置规则的顺序。
答案 3 :(得分:0)
订单错了。 5和3都适用于15,所以把大多数条件放在顶部,如下所示:
var x=1;
while(x<=20)
{
if ((x%3===0) && (x%5===0))
{
console.log("JuliaJames");
}
else if(x%5===0)
{
console.log("James");
}
else if(x%3===0)
{
console.log("Julia");
}
else if(!(x%3===0 && x%5===0))
{
console.log(x);
}
x=x+1;
}