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)
  }
}