我是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! ");
}
}
}
}
问题是我的变量似乎在脚本启动后立即选择一个随机数,并坚持使用它而不是给我一个新的随机数。
任何人都可以帮助我,并告诉我每次调用变量时如何获得一个新的随机数?
答案 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)
您需要将随机调用放入函数中,以便每次都创建一个新数字。当您将其直接分配给变量时,它只运行一次并将该值存储在变量中。
// 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;