javascript fizzbuzz switch语句

用户名

我目前正在学习有关Javascript的代码学院课程,并且无法完成FizzBu​​zz任务。我需要从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;
        };


};
daksh_019

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章