【发布时间】:2017-10-18 11:18:32
【问题描述】:
好的,所以我正在尝试制作一个小型数独生成器,但在遇到问题之前我并没有走多远。当 console.log 中的输出为“a == b”时,我遇到错误“超出最大调用堆栈大小”。这是我的代码(我不是经验丰富的编码器 FUI)
function en_Til_Ni() {
return Math.floor(Math.random()*9)+1;
}
var enTilNi = en_Til_Ni();
console.log(enTilNi);
var a = en_Til_Ni();
console.log("a" + a);
var b = en_Til_Ni();
console.log("b" + b);
var c = en_Til_Ni();
console.log("c" + c);
console.log("---------------------------------------------");
function ikkeLike() { //this is where it goes wrong
if (a != b) {
console.log(a, b);
}
else if (a == b) { // It logs the numbers just fine, untill a == b
ikkeLike();
}
}
ikkeLike();
【问题讨论】:
-
因为当
a==b时,发布a和b的值不会改变。因此永远不会达到退出条件。 -
顺便说一句,递归对于您的用例来说相对昂贵;如果在运行时之前结果未知,您可能希望使用 while 进行调查。
标签: javascript function loops if-statement