从用户输入生成随机数

Generating a random number from user Input

我一直在尝试制作一个代码,提示用户输入一个最小值和一个最大值,以便 return 从这两个值的间隔中得到一个随机值。现在已经几个小时了,我真的不明白我做错了什么。还见谅,我是学生,所以我还在努力理解这些基本的东西。

我试过 运行 代码,但 return 是“NaN”。我认为这里的问题与变量或其他问题有关,所以有人可以尝试指出吗?

function userInput(low,high){
         return prompt("Enter a minimum value:");
         return prompt("Enter a maximum value:");
    }
    function generateNum(){
    return Math.floor(Math.random()*max-min+1)+min;
    }
    function outputNum(q){
        document.getElementById("text1").innerHTML = q;
    }
    outputNum("Randomly generated number: "+generateNum());
    
    var min = parseInt(userInput());
    var max = parseInt(userInput());

这是一个工作片段。我更正了几点(缺少括号,函数中的第二个 return 永远无法到达并且 还有几个)。

function generateNum(){
  [min,max]=[+prompt("Enter a minimum value:"),
             +prompt("Enter a maximum value:")].sort();
  return min+Math.floor(Math.random()*(max-min+1));
}
document.getElementById("text1").innerHTML = "Randomly generated number: "+generateNum();
<div id="text1"></div>

我进一步简化并添加了一个.sort()。只要在提示对话框中输入了实际数字,就会有最小值和最大值。不需要可选的错误消息。

另一种方法

<!DOCTYPE html>
<html>
    <title> Random Between Min & Max </title>
<body>
<h2>Random Between Min & Max</h2>

<button onclick="randBetween()">Try it</button>

<p id="random"></p>

<script>
function randBetween() {
  let min = parseInt(prompt("Please enter minimum number"));
  let max = parseInt(prompt("Please enter maximum number"));
  if (min !=null && max != null && min < max) {
  let randBetween = Math.floor(Math.random() * (max - min + 1)) + min;
  document.getElementById("random").innerHTML = randBetween;
  }else{
  alert("Enter min and max value and max value must be greater than min");
  }
}
</script>
</body>
</html>