我目前正在学习有关Javascript的代码学院课程,并且无法完成FizzBuzz任务。我需要从1到20进行计数,如果该数字可被3个打印嘶嘶声,5个打印嗡嗡声,两个打印嘶嘶声可整除,否则只需打印该数字。我能够使用if / else if语句来做到这一点,但是我想使用switch语句来尝试它,但无法获得它。我的控制台仅记录默认值并打印1-20。有什么建议么?
for (var x = 0; x<=20; x++){
switch(x){
case x%3==0:
console.log("Fizz");
break;
case x%5===0:
console.log("Buzz");
break;
case x%5===0 && x%3==0:
console.log("FizzBuzz");
break;
default:
console.log(x);
break;
};
};
Switch将switch(x){中的x匹配到评估case表达式的结果。由于所有情况都将导致true / false,因此没有匹配项,因此始终执行default。
现在不建议使用switch来解决您的问题,因为在表达式过多的情况下,可能会有多个真实输出,从而给我们带来意想不到的结果。但是,如果您对此一无所知:
for (var x = 0; x <= 20; x++) {
switch (true) {
case (x % 5 === 0 && x % 3 === 0):
console.log("FizzBuzz");
break;
case x % 3 === 0:
console.log("Fizz");
break;
case x % 5 === 0:
console.log("Buzz");
break;
default:
console.log(x);
break;
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句