Javascript 返回函数在我的代码中不起作用,导致无限循环
我正在用JavaScript解决一个递归问题。但是,当第一个if语句为true时,return语句不会退出脚本,这将导致无限循环Javascript 返回函数在我的代码中不起作用,导致无限循环,javascript,recursion,Javascript,Recursion,我正在用JavaScript解决一个递归问题。但是,当第一个if语句为true时,return语句不会退出脚本,这将导致无限循环 function steps(n, row = 0, col = 0, stair = '') { if (row === n) { return; } if (col >= n ) { console.log(stair); steps(n, row + 1); } if (col <= row) {
function steps(n, row = 0, col = 0, stair = '') {
if (row === n) {
return;
}
if (col >= n ) {
console.log(stair);
steps(n, row + 1);
}
if (col <= row) {
stair += '#';
} else {
stair += ' ';
}
steps(n, row, col +1, stair)
}
功能步骤(n,行=0,列=0,楼梯=“”){
如果(行===n){
回来
}
如果(列>=n){
控制台。原木(楼梯);
步骤(n,行+1);
}
如果(col否,问题是您在第一次递归调用后没有返回,因此它也将始终执行第二次,并且该调用没有增加行
,因此它是一个无限循环
function steps(n, row = 0, col = 0, stair = '') {
if (row === n) {
return;
}
if (col >= n ) {
console.log(stair);
steps(n, row + 1);
}
if (col <= row) {
stair += '#';
} else {
stair += ' ';
}
steps(n, row, col +1, stair)
}
这项工作:
功能步骤(n,行=0,列=0,楼梯=“”){
如果(行===n){
回来
}
如果(列>=n){
控制台。原木(楼梯);
步骤(n,行+1);
}否则{
如果(col感谢Christian指出我缺少一份报税表。这是我现在的工作代码:
function steps(n, row = 0, col = 0, stair = '') {
if (row === n) {
return 0;
}
if (col >= n ) {
console.log(stair);
steps(n, row + 1);
return;
}
if (col <= row) {
stair += '#';
} else {
stair += ' ';
}
steps(n, row, col +1, stair)
}
功能步骤(n,行=0,列=0,楼梯=“”){
如果(行===n){
返回0;
}
如果(列>=n){
控制台。原木(楼梯);
步骤(n,行+1);
回来
}
if(col)如何调用此函数?