这是我的代码。我没有打印出任何Fizz的嗡嗡声。我只得到数字。谁有人解释为什么?感谢
printOut = "";
for (var x=1; x < 101 ; x++) {
switch(x) {
case((x%3) == 0):
printOut+="\n"+ "Fizz" ;
break;
case((x%5) == 0):
printOut+="\nBuzz";
break;
default:
printOut+="\n" + x ;
break;
}
}
console.log(printOut);
答案 0 :(得分:3)
检查您如何使用switch语句:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/switch
切换线x中的是你的表达式,((x%5)== 0)是你的值。我认为你的意思是少数if / else语句。
答案 1 :(得分:0)
您未正确使用switch
语句。每当case (value):
等于x
时,每个value
基本上都应该运行。
要解决此问题,只需完全删除switch
语句,并为每个if
替换case
:
for (var x = 1; x < 101; x++) {
if ((x % 3) == 0)
printOut += "\n" + "Fizz";
else if ((x % 5) == 0)
printOut += "\nBuzz";
else
printOut += "\n" + x;
}
答案 2 :(得分:0)
您尝试将x
的值与值为true
或false
的表达式进行匹配。您可以在交换机中传递true,并且交换机将与第一个评估为true的case语句“匹配”。
虽然这种方式有效,但我建议只做if / else语句。这对于数字30不起作用,对于X%3和x%5都是True。它将首先与x%3匹配并停在那里。
printOut = "";
for (var x=1; x < 101 ; x++) {
switch(true) {
case((x%3) == 0):
printOut+="\n"+ "Fizz" ;
break;
case((x%5) == 0):
printOut+="\nBuzz";
break;
default:
printOut+="\n" + x ;
break;
}
}
console.log(printOut);