gpt4 book ai didi

javascript - fizz buzz 的 if-else 语句中的顺序是否重要?

转载 作者:行者123 更新时间:2023-11-30 12:39:04 25 4
gpt4 key购买 nike

我刚刚做了 fizz buzz 测试,但我做的与下面的答案不同。我将第一个“if”语句(即 i%3===0 && i%5===0)作为最后一个“else if”语句,但出于某种原因它没有不工作。但是我的逻辑是一样的。

有谁知道为什么它不起作用?将 if, else 语句放在哪个位置真的很重要吗?下面是答案的关键。

for(var i = 1; i < 100; i++){
if(i%3 === 0 && i%5 === 0){
console.log("FizzBuzz");
}
else if(i%3 === 0) {
console.log("Fizz");
}
else if(i%5 === 0){
console.log("Buzz");
}
else {
console.log(i);
}
}

这是我的回答:

for(var i = 1; i < 100; i++){
if (i%5 === 0){
console.log("Buzz");
}
else if(i%3 === 0) {
console.log("Fizz");
}
else if (i%3 === 0 && i%5 === 0){
console.log("FizzBuzz");
}
else {
console.log(i);
}
}

最佳答案

如果你把 if (i%3 === 0 && i%5 === 0) 作为链中的最后一个 if,那么只有 一个之前的分支将被输入——即,if (i%3 === 0)if (i%5 === 0)。由于您使用的是 else if,控件将永远不会输入组合的“FizzBu​​zz”if

例如:假设i = 15。如果你有以下代码:

if(i%3 === 0 && i%5 === 0) {
console.log("FizzBuzz");
}
else if(i%3 === 0) {
console.log("Fizz");
}
else if(i%5 === 0) {
console.log("Buzz");
}
else {
console.log(i);
}

您的输出将是 FizzBu​​zz。但是,如果您将合并的 if 移动到末尾,如下所示:

if(i%3 === 0) {
console.log("Fizz");
}
else if(i%5 === 0) {
console.log("Buzz");
}
else if(i%3 === 0 && i%5 === 0) {
console.log("FizzBuzz");
}
else {
console.log(i);
}

那么你的输出将只是 Fizz,因为 i%3 === 0

关于javascript - fizz buzz 的 if-else 语句中的顺序是否重要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25128349/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com