Рекурсия для бота угадывания числа

Написал программу-бот, которая загадывает число, а пользователь должен его угадать. Результат ("больше", "меньше" , "угадали")-выводится с помощью alert. Через цикл все работает как надо, а через рекурсию-нет, alert возвращает "undefined". Как сделать, чтобы работала рекурсия?

let userNum;
let randomNum = parseInt(Math.random() * 100);

function isNum(num) {
    return !isNaN(parseFloat(num)) && isFinite(num);
}

while (true) {
    userNum = prompt('Введите число');
    if (userNum === null) break;

    if (isNum(userNum)) {
        userNum = +userNum;

        if (userNum > randomNum) {
            alert('Вы ввели большее число');
        } else if (userNum < randomNum) {
            alert('Вы ввели меньшее число');
        } else if (userNum === randomNum) {
            alert('Верно, Вы угадали загаданное число!');
            randomNum = parseInt(Math.random() * 100);
        }
    } else {
        alert('Можно вводить только числа');
    }
}


Ответы (1 шт):

Автор решения: Igor

let randomNum = parseInt(Math.random() * 100);

function isNum(num) {
  return !isNaN(parseFloat(num)) && isFinite(num);
}

function guessNumber() {
  let userNum = prompt('Введите число');
  if (isNum(userNum)) {
    userNum = +userNum;

    if (userNum > randomNum) {
      alert('Вы ввели большее число');
    } else if (userNum < randomNum) {
      alert('Вы ввели меньшее число');
    } else if (userNum === randomNum) {
      alert('Верно, Вы угадали загаданное число!');
      return userNum;
    }
  } else {
    alert('Можно вводить только числа');
  }
  return guessNumber();
}

console.log(guessNumber());

→ Ссылка