我对这段代码感到沮丧。我可能没有看到。 我一直收到“意外令牌”或“ ILLEGAL”错误(考虑到我一生中从未见过这样的错误,后者使我完全困惑。
我一直在仔细检查语法,我认为这可能是我没有抓住的东西吗?
function fizzBuzz(n) {
for (i = 0; i<=n; i++) {
if (n%3===0) {
print ("fizz")
}
if (n%5===0) {
print ("buzz")
}
if (i%3 !== 0 && i%5 !== 0) {
return [i];
}
}
}
fizzBuzz(100);
感谢您的帮助! <3
答案 0 :(得分:0)
您需要进行一些更改:
删除行号,
首先检查'fizz buzz'
的值,然后使用console.log
进行输出。然后使用continue
语句跳到下一个循环的顶部,
使用i
而非n
进行检查。
function fizzBuzz(n) {
for (i = 0; i <= n; i++) {
if (i % 3 === 0 && i % 5 === 0) {
console.log("fizz buzz");
continue;
}
if (i % 3 === 0) {
console.log("fizz");
continue;
}
if (i % 5 === 0) {
console.log("buzz");
continue;
}
console.log(i);
}
}
fizzBuzz(100);
答案 1 :(得分:0)
std::vector<int> foo(x * x);
// access column `c` at row `r` like
foo[r * x + c];
行号是导致“ ILLEGAL”错误的原因。删除它们。
JavaScript中的 for(std::size_t i{}; i < x; ++i, std::cout.put('\n'))
std::copy(foo.begin() + i * x, foo.begin() + (i+1) * x,
std::ostream_iterator<int>(std::cout, " "));
打开打印对话框,从字面上将纸张打印出打印机。使用function fizzBuzz(n) {
2 for (i = 0; i<=n; i++) {
3 if (n%3===0) { You're checking if the maximum number (n) is divisible by 3.
4 print ("fizz") You should be checking i.
5 }
6 if (n%5===0) { You're checking if the maximum number (n) is divisible by 5.
7 print ("buzz") You should be checking i.
8 }
9 if (i%3 !== 0 && i%5 !== 0) {
10 return [i]; You're returning an array with a single element: i.
11 } You should print i instead.
12 }
13 }
14
15
16 fizzBuzz(100);
如果数字可以被3和5整除,则应打印print
。您的代码在单独的行上打印console.log
和fizzbuzz
。
工作版本(https://www.youtube.com/watch?v=QPZ0pIK_wsc):
fizz
答案 2 :(得分:0)
让我们减少if语句的数量,我已经看到很多嘶嘶声-我想尝试另一种方法
const fizzBuzz = (i = 0, ret) => {
while (++i, ret = '', i <= 100) {
if (i % 3 === 0) {
ret += `fizz`
}
if (i % 5 === 0) {
ret += `buzz`
}
console.log(ret || i)
}
}
fizzBuzz()
最重要的部分是console.log(ret || i)
-空字符串是虚假值,因此,如果存在某个值或,控制台将记录ret
i
值
答案 3 :(得分:0)
如果您尝试打印到浏览器的控制台,请使用console.log()
而不是print()
,因为print()
将在浏览器中打开打印机预览。我正在使用Chrome。如果您创建了包含JavaScript脚本的html文件,请记住通过按F12并单击“控制台”来检查控制台。
由于您要迭代i直到其达到n的值,因此if语句应类似于:
if(i%3===0){
// your code...
}
根据您的代码,您似乎想检查的值不是3的倍数和&的5的倍数。但是,fizzbuzz挑战需要在遇到一个数字同时是f的倍数时打印fizzbuzz。 3 && 5的倍数。因此,您需要添加以下条件:
if (i%3 === 0 && i%5 === 0) {
console.log("fizzbuzz");
continue; /* Continue may or may not be necessary depending on your program's logic. Continue allows to re-enter the loop
without checking for the remaining if statements. If you use continue, this condition must be the first if statement inside the loop */
}
您的函数不需要返回任何内容,因为您正在使用console.log()可视化每次循环迭代中的值。这就是为什么您需要将return [i]
更改为console.log(i)
的原因。
不要放弃,继续尝试!
如果您还有其他问题,我们很乐意为您提供帮助。