Return 值始终未定义
Return value always undefined
我正在尝试使用递归实现 GCD 函数,但是当我创建一个 return 值时,它总是 return 未定义,而如果我创建一个 console.log(value ) 它显示正确吗?
这是我正在使用的代码:
let a = 6
let b = 4
var gcd = gcdRec(a, b)
console.log(gcd) //this executes undefined
function gcdRec(a, b) {
var gcd = 0
if (a % b === 0) {
gcd = b
return gcd //if i used console.log(gcd) it prints correctly
} else {
var temp = b
b = a % b
a = temp
if (b === 0) {
gcd = a
return gcd
}
gcdRec(a, b)
}
}
我也尝试在使用它之前定义 gce,如 let gcd =0
然后 gcd = gcdRec(a,b)
,但它仍然是一样的。知道为什么要这样做吗?
在每个条件的函数中给出 return 语句
let a = 6
let b = 4
var gcd = gcdRec(a, b)
console.log(gcd) //this executes undefined
function gcdRec(a, b) {
var gcd = 0
if (a % b === 0) {
gcd = b
return gcd //if i used console.log(gcd) it prints correctly
} else {
var temp = b
b = a % b
a = temp
if (b === 0) {
gcd = a
return gcd
}
return gcdRec(a, b)
}
}
我正在尝试使用递归实现 GCD 函数,但是当我创建一个 return 值时,它总是 return 未定义,而如果我创建一个 console.log(value ) 它显示正确吗?
这是我正在使用的代码:
let a = 6
let b = 4
var gcd = gcdRec(a, b)
console.log(gcd) //this executes undefined
function gcdRec(a, b) {
var gcd = 0
if (a % b === 0) {
gcd = b
return gcd //if i used console.log(gcd) it prints correctly
} else {
var temp = b
b = a % b
a = temp
if (b === 0) {
gcd = a
return gcd
}
gcdRec(a, b)
}
}
我也尝试在使用它之前定义 gce,如 let gcd =0
然后 gcd = gcdRec(a,b)
,但它仍然是一样的。知道为什么要这样做吗?
在每个条件的函数中给出 return 语句
let a = 6
let b = 4
var gcd = gcdRec(a, b)
console.log(gcd) //this executes undefined
function gcdRec(a, b) {
var gcd = 0
if (a % b === 0) {
gcd = b
return gcd //if i used console.log(gcd) it prints correctly
} else {
var temp = b
b = a % b
a = temp
if (b === 0) {
gcd = a
return gcd
}
return gcdRec(a, b)
}
}