0

1 から 1000 (929) までの最大の回文を出力する JS プログラムを作成しようとしています。Uncaught SyntaxError: Unexpected identifierコードの 4 行目に次のように表示されます。

    var num = 1;

    for (var i=0;i<=1000;i++) {
      if i == reverse(i) && isPrime(i)
          num = i;
          console.log(num);
    }
    document.write(num);

    function reverse(s) {
        var o = '';
        for (var i = s.length - 1; i >= 0; i--)
            o += s[i];
      return o;
    }

    function isPrime(number) {
        var start = 2;
        while (start <= Math.sqrt(number)) {
            if (number % start++ < 1) return false;
        }
        return number<=1 ? false : true;
    }

とは何Uncaught SyntaxError: Unexpected identifierですか? そして、どうすればバグを修正できますか?

4

2 に答える 2

3

ifステートメントに括弧()とブロック識別子がありません{}

JavaScriptifステートメントの構文は次のとおりです。

if (condition) {

    // do something

} else {

    // do something else
}

したがって、if上記のコードを変更すると、うまくいくはずです!

于 2013-10-07T00:24:41.747 に答える
0

for ループ内の 2 つの角かっこを見逃したと思いますが、「逆」関数にもエラーがあると思います。この解決策を試してください:

var num = 1;

function isReversible(s) {
    var o=s.toString();
    return o.split("").reverse().join("")==s.toString()?true:false;
}

function isPrime(number) {
    var start = 2;
    while (start <= Math.sqrt(number)) {
        if (number % start++ < 1) return false;
    }
    return number<=1 ? false : true;
}

for (var j=0;j<=1000;j++) {
    if (isReversible(j) && isPrime(j))
      num = j;
    console.log(num);
}
document.write(num);
于 2013-10-07T00:19:25.137 に答える