我会尝试更好地解释它。我重写了一个代码,以使其更好地作为一个例子。正如你所看到的,我有一个应用程序来生成一个数字,但要生成正确的数字,我必须在按钮上单击5-15次,因为随机和if语句。我想问一下如何让一个过程跳过错误的数字,并只需一次点击即可给出实际答案(只需5-15次点击)。如果你不了解我,我可以提供更多信息。非常感谢你!
*视频:https://vimeo.com/251109159
function getnumber() {
var input = document.IX.onetoThou.value;
var firstNum = input[0];
var ranNumb = Math.floor(Math.random()*(99-00+1)+00);
var ans = "you are right!";
var newNumber = firstNum + ranNumb;
if ( newNumber % 5 == 0){
document.getElementById("newnumber").innerHTML = newNumber+" "+ans;
}
}
答案 0 :(得分:1)
您可以将 do while 循环中的数字生成包裹起来:
function getnumber() {
var input = document.IX.onetoThou.value;
var firstNum = input[0];
var ans = "you are right!";
var newNumber;
do {
var ranNumb = Math.floor(Math.random()*(99-00+1)+00);
newNumber = firstNum + ranNumb;
} while (newNumber % 5 !== 0);
document.getElementById("newnumber").innerHTML = newNumber+" "+ans;
}
答案 1 :(得分:0)
不是在[0,100)中生成随机整数并检查它是否是5的倍数,而是在[0,20]中生成随机整数并将其乘以5.这样可以保证结果将是0到100之间的5的倍数。
var ranNumb = Math.floor(Math.random() * 20) * 5;
答案 2 :(得分:0)
if-else
而不是if
条件语句
function getnumber() {
var input = document.IX.onetoThou.value;
var firstNum = input[0];
var ranNumb = Math.floor(Math.random()*(99-00+1)+00);
var ans = "you are right!";
var newNumber = firstNum + ranNumb;
if ( newNumber % 5 == 0){
document.getElementById("newnumber").innerHTML = newNumber+" "+ans;
}else{
document.getElementById("newnumber").innerHTML = "You are wrong";
}
}