如何在javascript中获取新的随机数

时间:2018-04-11 16:22:33

标签: javascript

我是JavaScript的新手,我确信这个问题已经得到了相当多的回答,但是当我搜索我的问题时,我似乎找不到答案(或者我真正理解的答案:D)

目前,我正在尝试创建一个工具来帮助那些有乘法事实的孩子,并且我无法让程序生成新的随机数。

var r1 = Math.floor(Math.random() * 13);
var r2 = Math.floor(Math.random() * 13);

function start() {
    println("Welcome to the multipilcation helper! ");
    var num = readLine("Pick a number you want to practice or type 'random'!");
    var ques = readLine("How many questions do you want?");
    if (num == "random") {

        for (var i = 0; i < ques; i++) {

            var answer = r1 * r2;
            println(r1 + "*" + r2);
            var check = readLine("what is the answer");

            if (check == answer) {
                println("thats correct!");
            } else {
                println("thats wrong! ");
            }

        }
    }
}

问题是我的变量似乎在脚本启动后立即选择一个随机数,并坚持使用它而不是给我一个新的随机数。

任何人都可以帮助我,并告诉我每次调用变量时如何获得一个新的随机数?

4 个答案:

答案 0 :(得分:0)

只需创建一个类似下面的方法,并像protected void onPostExecute(String s) { super.onPostExecute(s); try { loadIntoTextView(s); // MOVED FROM onMapReady LatLng myAddressCoordinates = getLocationFromAddress(TVStringa.getText().toString()); //LatLng myAddressCoordinates = getLocationFromAddress("Piazza Ferretto Mestre"); mapView.addMarker(new MarkerOptions().position(myAddressCoordinates).title(Indirizzo)); mapView.moveCamera(CameraUpdateFactory.newLatLngZoom(myAddressCoordinates, 16)); } catch (JSONException e) { e.printStackTrace(); } } 一样使用它来为每次调用获取一个新的随机数。

r()

答案 1 :(得分:0)

function r() {
  return Math.floor(Math.random() * 13);
}

console.log(r());
console.log(r());
console.log(r());

您的随机数目前是静态的。他们需要再次被召唤。将您的function start() { console.log("Welcome to the multipilcation helper! "); var num = prompt("Pick a number you want to practice or type 'random'!"); var ques = prompt("How many questions do you want?"); if (num == "random") { for (var i = 0; i < ques; i++) { var r1 = Math.floor(Math.random() * 13); var r2 = Math.floor(Math.random() * 13); var answer = r1 * r2; console.log(r1 + "*" + r2); var check = prompt("what is the answer"); if (check == answer) { console.log("thats correct!"); } else { console.log("thats wrong! "); } } } } start()r1分配移至r2

  

我没有足够的声誉发表评论,但会更新答案   如果你用更多细节解释它。

答案 2 :(得分:0)

在循环中,您应该重新分配随机数,以便在循环的每次迭代中重新分配它们。否则,它们会保持静态到您在顶部给出的值。

此外,在检查相等性时,您应该在Javascript中使用三等号,因为这是最佳做法。

答案 3 :(得分:0)

您需要将随机调用放入函数中,以便每次都创建一个新数字。当您将其直接分配给变量时,它只运行一次并将该值存储在变量中。

&#13;
&#13;
// pick a number between 0 and 13
var random = function() {
 return Math.floor(Math.random() * 13);
}

function start(){
    for(var i = 0; i < 15; i++){
      // call random function for each number and store in a var
      var number1 = random();
      var number2 = random();
      var answer = number1 * number2;
      console.log('equation:', number1 + '*' + number2);
      console.log('answer:', answer);

    }
}

// call the start function
start()
&#13;
&#13;
&#13;