当我尝试渲染一个简单的 java 脚本文件来打印斐波那契表时,我在 Chromium 中没有得到任何东西(空白页)...如下所示
<!DOCTYPE html>
<html>
<head>
<title> The Fibonacci Numbers </title>
</head>
<body>
<script>
document.write("<h2>Table of Fibonacci Numbers</h2>");
for(i=0;j=1;k=0;f=0;i<50;i++;f=j+k;j=k;k=f) {
document.write("Fibonacci("+i+") = "+f);
document.write("<br>");
}
</script>
</body>
</html>
我认为这可能是因为 chromium 中未启用 javascript,所以我搜索并运行了...
$ sudo apt-get update && sudo apt-get install icedtea-plugin
但是,它不起作用?问题是什么?
答案1
与 Chrome 无关,与 Java 无关(IcedTea 是一个插件,不是Javascript)。问题很简单:该循环的语法for
是全部错误的。
for(i=0;j=1;k=0;f=0;i<50;i++;f=j+k;j=k;k=f) {...}
像这样的简单迭代器for
循环(还有其他类型的 for 循环)应如下所示:
for (declaration; limit; iterator) {
code
}
我可以看到你正在尝试什么,你只需要重新安排它:
j=1;k=0;f=0;
for(i=0;i<50;i++) {
f=j+k;j=k;k=f;
document.write("Fibonacci("+i+") = "+f);
document.write("<br>");
}
答案2
这与 Ubuntu 无关,只是你的脚本中存在语法错误。下次打开 javascript 控制台(点击F12)。你会看到此错误:
Uncaught SyntaxError: Unexpected token ;
安装了 FireBug 的 Firefox 更有用一些:
SyntaxError: missing ) after for-loop control
for(i=0;j=1;k=0;f=0;i<50;i++;f=j+k;j=k;k=f) {
--------------^
据我所知,你不能在for
循环声明中完成所有这些操作,但我不是 JavaScript 专家,所以我可能是错的。可以肯定的是,你不能这样做那方式。例如,你在哪里更改 的值j
?即使这样有效,它总是会打印0
。你要找的是类似
<html>
<head>
<title> The Fibonacci Numbers </title>
</head>
<body>
<script>
document.write("<h2>Table of Fibonacci Numbers</h2>");
document.write("Fibonacci(0) = 0<br>");
document.write("Fibonacci(1) = 1<br>");
last=1;
BeforeLast=0;
for(i=2;i<50;i++){
f=last+BeforeLast;
document.write("Fibonacci("+i+") = "+f);
document.write("<br>");
BeforeLast=last;
last=f;
}
</script>
</body>
</html>