我需要发出一个提示,要求输入一个数字,然后将该字符串转换为数字。如果他们没有输入数字,我需要再次提示输入一个数字并将他们输入的字符串转换为数字。如果输入十进制数,我需要提示输入一个整数并将字符串转换为数字。
我认为我可以为所有人使用相同的变量名,但为了使其工作,我需要为其他两个提示定义不同的变量。为什么是这样?我如何才能将其降低,以便在调用函数时,我只能引用一个变量而不是三个变量?
这是我的代码:
var numSubmit = prompt("Please enter a number");
if(isNaN(numSubmit)) {
var newNum = prompt("A number is required.");
newNum = +newNum;
// Why did I need to define a new variable in order to convert it to a number? Why didn't keeping the original variable and writing numSubmit = +numSubmit work?
}
else if (numSubmit % 1 != 0) {
var noDecimal = prompt("Please do not enter a decimal number.");
noDecimal = +noDecimal;
}
else {
numSubmit = +numSubmit;
}
我的原始代码是:
var numSubmit = prompt("Please enter a number");
if(isNaN(numSubmit)) {
prompt("A number is required.");
numSubmit = +numSubmit;
}
else if (numSubmit % 1 != 0) {
prompt("Please do not enter a decimal number.");
numSubmit = +numSubmit;
}
else {
numSubmit = +numSubmit;
}
当我输入一封信,并收到一条消息说需要一个号码,然后输入一个号码时,结果又以NaN的形式返回。
编辑添加:
这似乎有效:
var numSubmit = prompt("Please enter a number");
while(isNaN(numSubmit)) {
numSubmit = prompt("A number is required")
}
while(numSubmit % 1 != 0) {
numSubmit = prompt("Please do not enter a decimal number.");
}
numSubmit = +numSubmit;
答案 0 :(得分:0)
问题在于您没有将numSubmit指定给代码中第二个和第三个提示的值。
您需要在numSubmit =
和prompt("Please enter a number")
prompt("Please do not enter a decimal number.")
这就是你的代码应该是这样的:
var numSubmit = prompt("Please enter a number");
if(isNaN(numSubmit)) {
numSubmit = prompt("A number is required.");
numSubmit = +numSubmit;
}
else if (numSubmit % 1 != 0) {
numSubmit = prompt("Please do not enter a decimal number.");
numSubmit = +numSubmit;
}
else {
numSubmit = +numSubmit;
}