我在其他线程上读到了这个错误,这些线程主要要求用户删除分号。这似乎对我的代码没有任何影响。
function isEven(number){
if (number > 1)
return isEven(number-2);
else if (number == 1)
return false;
else if (number == 0)
return true;
else if (number < 0)
number *= -1
return isEven(number);
else
return "Error";
}这个行号*= -1似乎导致了错误,就好像我删除了它一样,代码运行时没有错误,只有在堆栈耗尽内存的负数情况下才运行。我想做的是让所有的数字都是正数。有谁愿意帮我吗?
溶液
function isEven(number){
if (number < 0){
number *= -1
return isEven(number);}
else if (number > 1){
return isEven(number-2);}
else if (number == 1){
return false;}
else if (number == 0){
return true;}
else
return "Error";
}发布于 2017-07-12 07:40:08
{}不带花括号的问题
最好在每个if语句和else语句中添加{}(花括号)
function isEven(number) {
if (number > 1) {
return isEven(number - 2);
} else if (number == 1) {
return false;
} else if (number == 0) {
return true;
} else if (number < 0) {
number *= -1
return isEven(number);
} else {
return "Error";
}
}
console.log(isEven(-2))
发布于 2017-07-12 07:40:44
问题是,如果不使用大括号包装代码,则在第3行代码中执行2行代码。默认情况下,如果不用大括号包装块,则只执行一行。
function isEven(number){
if (number > 1){
return isEven(number-2);
}
else if (number == 1){
return false;
}
else if (number == 0){
return true;
}
else if (number < 0){
number *= -1;
return isEven(number);
}
else{
return "Error";
}
}https://stackoverflow.com/questions/45051240
复制相似问题