在javascript中,我可以对变量使用模数运算符(%)而不是整数吗?
我正在研究一个Euler问题,并试图构建一个函数来检查一个数字是否为素数。我收到有关该行的错误消息:在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
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)来指出语法错误。这很有效,谢谢你们!现在转到下一个要调试的错误。。。