以下是Codecademy的说明:
打印出1到20之间的数字。
对于可被3整除的数字,请打印出#34; Fizz"。
对于可被5整除的数字,请打印出" Buzz"。
对于可被3和5整除的数字,请打印出#34; FizzBuzz"在里面 控制台。
否则,只需打印出数字。
这是我的代码:
for (i = 1; i <= 20; i++) {
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);
}
}
&#13;
问题在于它不会打印&#34; FizzBuzz&#34;对于15号。它只是打印&#34; Fizz&#34;。
我在这里缺少什么?
答案 0 :(得分:1)
如果只有在目前为止所有其他语句都为假的情况下才会运行。由于i%3为真,所以剩余的else / if语句将永远不会运行。尝试这样的事情:
for (i = 1; i <= 20; i++) {
if (i % 3 == 0 && i % 5 == 0) {
console.log("FizzBuzz");
}
else if (i % 5 == 0) {
console.log("Buzz");
}
else if (i % 3 == 0) {
console.log("Fizz");
}
else {
console.log(i);
}
}
答案 1 :(得分:1)
如果你想使用嵌套条件,这似乎有效。
for ( i=1 ; i < 21 ; i++){
if(i % 3 === 0) {
if(i % 5 === 0){
console.log("FizzBuzz");
}
else {
console.log("Fizz");
}
}
else if (i % 5 === 0) {
if ( i % 3 === 0){
console.log("FizzBuzz");
}
else{
console.log("Buzz");
}
}
else{
console.log(i);
}
}
答案 2 :(得分:0)
使用tenary运算符在javascript中直接使用fizzBuzz(if-else语句的单行速记) 了解tenary运营商here
var i = 1;
while (i <= 20){
console.log((i % 3 === 0 && i % 5 === 0) ? "FizzBuzz" : (i % 3 === 0) ? "Fizz" : (i % 5 === 0 ? "Buzz" : i));
i++;
}