我想在javascript中编写一个算法,我确信我写的是真的。算法从用户给出一个数字,并给用户提供结果:1 + 3 + 5 + ... +(2n + 1)和" n"是变种。 javascript给了我错误:calc()没有定义,意外的令牌;
<html>
<head>
<title>Algorithm</title>
<script type="text/javascript">
function calc(){
var n = document.getElementById('value').value;
var sum = 0, i = 1, k = 0;
for(k=0,k<n,k++){
sum = sum += i;
i+=2;
k++;
}
document.getElementById('answer').innerHTML = sum;
}
</script>
</head>
<body>
<input type="text" id="value" placeholder="Enter your number"/>
<button onclick="calc()">OK</button><br/>
<h1 id="answer"></h1>
</body>
答案 0 :(得分:3)
问题是您的for
循环语法。您需要使用分号;
来分隔语句:
for( k = 0; k < n; k++ ){
...
}
创建一个循环,该循环由三个可选表达式组成,括在括号中,用分号分隔,然后是循环中执行的语句。
JavaScript引擎无法解析你的for循环,然后遇到循环的结束括号(因为它仍在试图解析循环的条件,所以它并不期待)。
答案 1 :(得分:2)
for()语句需要用分号(;
)代替逗号(,
)。
for (var k=0; k < n; k++) {
“jshint”工具可以非常有助于捕捉javascript中的错误。在jshint.com
上有一个网络版本答案 2 :(得分:1)
for(k=0,k<n,k++){
您使用逗号而不是分号。
答案 3 :(得分:1)
这是因为;
语法中你应该,
而不是for
。
for(k=0;k<n;k++){...}
答案 4 :(得分:0)
您的for
声明正在使用commas
而不是semi-colons
。
将其更改为使用;
。
for(k=0,k<n,k++){
sum = sum += i;
i+=2;
k++;
}