我应该为一个基本的Javascript课程做一个带有减法的数学练习。练习必须包含5个提示窗口(例如"10-7=“、"5-1=”等)。第一个数字必须大于第二个数字。
因此,我需要创建一个函数,生成两个随机数,然后在数组中返回它们。在返回之前,它必须确保位置0中的数字大于位置1中的数字,随机数必须介于1-10之间。如果该人正确回答问题,则应弹出一个警报窗口,并说“对!”如果是错的话也是一样。
到目前为止,我的代码是这样的,而且我知道它并不完全正确。怎么了?我怎么才能改正呢?
function number ()
{
var array = [a, b];
var numbers = Math.floor(Math.random()*10)+1;
array[0] = a ;
array[1] = b ;
if (a <= b)
a = a+b;
b = a-b;
a = a-b;
return a + b;
}
var mathQuestion = a + " - " + b +" = ";
var answer = a - b;
for(var i =0; i<6; i++) {
var yourAnswer = parseInt(prompt(mathQuestion));
if (yourAnswer === answer) {
alert("Right!");
}
else {
alert("Wrong!");
}
}
发布于 2018-04-21 15:30:53
我不太确定您想要实现什么,但我考虑查看一下您的代码,以对其进行改进。
这段代码运行良好,所以请看一下:)
function getTask() {
var array = [];
var numberA = getRandomNumber()
var numberB = getRandomNumber()
if (numberA > numberB) {
array[0] = numberA;
array[1] = numberB;
} else {
array[0] = numberB;
array[1] = numberA;
}
return array;
}
function getRandomNumber() {
return Math.floor(Math.random() * 10) + 1;
}
let questionCount = 1;
for (var i = 0; i < questionCount; i++) {
let numbers = getTask()
var mathQuestion = numbers[0] + " - " + numbers[1] + " = ";
var answear = numbers[0] - numbers[1];
var yourAnswear = parseInt(prompt(mathQuestion));
if (yourAnswear === answear)
alert("Right!");
else
alert("Wrong!");
}
Note
:问题是您错过了a and b
的声明。将关键字var
放在值之前。
发布于 2018-04-21 16:18:11
您可以用三元算子、加入和排序数组方法和箭头函数给您的老师留下深刻印象。
const getRandom = () => Math.floor(Math.random() * 10) + 1
const ask = () => {
const numbers = [getRandom(), getRandom()].sort((a, b) => b - a)
alert(
prompt(numbers.join(' - ') + ' = ') == numbers[0] - numbers[1] ?
'Right!' : 'Wrong!'
)
}
for (var i = 0; i < 6; i++) {
ask();
}
https://stackoverflow.com/questions/49957223
复制相似问题