回文程序 - 意外的标识符错误

Palindrome program - unexpected identifier error

本文关键字:标识符 错误 意外 程序 回文      更新时间:2023-09-26

我正在尝试编写一个JS程序来打印1到1000(929)之间的最大回文。 我在代码的第 4 行得到一个Uncaught SyntaxError: Unexpected identifier

    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? 我该如何修复该错误?

您的if语句缺少括号()和块标识符{}

JavaScript if 语句的语法如下:

if (condition) {
    // do something
} else {
    // do something else
}

所以,改变你上面的if代码,你应该很好!

我认为您在 for 循环中错过了两个括号,但我也认为您的"反向"函数有错误。试试这个解决方案:

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);