在javascript中,我可以对变量使用模数运算符(%)而不是整数吗?

在javascript中,我可以对变量使用模数运算符(%)而不是整数吗?,javascript,operators,modulus,Javascript,Operators,Modulus,我正在研究一个Euler问题,并试图构建一个函数来检查一个数字是否为素数。我收到有关该行的错误消息: if (a)%(b)==0{ 是我的语法错误,还是无法对变量而不是整数使用% var x = Math.sqrt(600851475143); var y = Math.round(x); y++; console.log(y); //find all of the prime numbers up to the square root number. Put them in an arr

我正在研究一个Euler问题,并试图构建一个函数来检查一个数字是否为素数。我收到有关该行的错误消息:

if (a)%(b)==0{
是我的语法错误,还是无法对变量而不是整数使用%

var x = Math.sqrt(600851475143);
var y = Math.round(x);
y++;
console.log(y);

//find all of the prime numbers up to the square root number.  Put them in an array.  
//Check each ascending number against the prime numbers in the array to see if %=0

var primes = [2,3];
var a =(3);

while (a<y){
    a++;
    isPrime(a)
}
function isPrime(arr){
for (var i = 0; i < arr.length; i++){
    var b = primes[i];
    //next line is a problem
    if (a)%(b)==0{
        break
    }else{
        primes.push(a);
        }
    }
}
var x=Math.sqrt(600851475143);
变量y=数学圆(x);
y++;
控制台日志(y);
//找到所有的素数,直到平方根。把它们排成一列。
//对照数组中的素数检查每个升序数,查看%=0
var素数=[2,3];
var a=(3);

while(a您始终可以对变量使用操作。当脚本运行时,变量将替换为与变量关联的实际值

var a = 3,
    b = 5;
if(a%b == 0) {}
等于

if(3%5 == 0) {}
您刚才在语句中使用了错误的语法:

if (a)%(b)==0 {}
应该是:

if(a%b == 0) {}
在JavaScript中,您需要用弯曲的括号而不是变量来包装if语句。您的代码会触发语法错误,因为if语句编写错误,并且括号外不需要随机模、等号和其他符号。

可以使用它

但问题就在
if
循环中

如果(a)%(b)==0{//这里假设条件语句以结尾)

哪个在
a之后

事实上是这样的

if ((a)%(b)==0){  // Note braces pointed by ^^
   ^          ^       
      break
    }else{
        primes.push(a);
        }
    }
}

是的,您的语法错误。如果(a%b==0){
..
},则为
。这与模运算符无关,但与您的
if
语句有关。如果您缺乏用括号查看小错误的技能,那么您的技能远远不够,无法尝试解决Euler问题。请返回并处理更简单的事情。@JK在新语言的语法方面有问题ge并不意味着一个人缺乏数学家的理解。相反,OP应该尝试更好的工具(devtools、IDE、linter)来指出语法错误。这很有效,谢谢你们!现在转到下一个要调试的错误。。。