我的练习是强迫用户输入一个数字并检查它是否小于100.我想我做得很好但是还有另一种情况我不知道该怎么做。如果用户未在空格中键入任何数字,则程序应显示“您必须键入数字”之类的内容。我该如何编写代码?
var number=prompt('enter a number');
if (number<100){
newnumber=100-number;
document.write(number+'is less than 100 by'+ newnumber);
}else if(number>100){
document.write('type again');
}
答案 0 :(得分:2)
您可以使用isNaN
功能确定用户输入是否为有效号码。我还为你验证了空白字符,如下所示。
var isValid = !isNaN(number) && number !== "";
完整代码段
var number = prompt('enter a number');
number = number.replace(/\s/g, "");
var isValid = !isNaN(number) && number !== "";
if (isValid) {
if (number<100) {
newnumber=100-number;
document.write(number+'is less than 100 by'+ newnumber);
} else if(number>100) {
document.write('type again');
}
} else {
document.write("Looks like you didn't enter a valid number");
}
&#13;
答案 1 :(得分:1)
.replace(/\s/g, "")
。parseFloat()
输入了号码
用户输入十进制数字,如5.254
或仅使用整数
parseInt()
,如5
。number > 100
或number < 100
。见这个例子:
var number = prompt('enter a number');
number = number.replace(/\s/g, ""); //remove all spaces
if (number != "") { // if not empty
if (parseFloat(number) == number) { // if decimal/integer number
if (number < 100) {
newnumber = 100 - number;
document.write(number + ' is less than 100 by ' + newnumber);
} else if (number > 100) {
//number = prompt('enter a number');
document.write('type again');
}
} else {
//number = prompt('enter a number');
document.write('you must type a number');
}
} else { // if empty input
//number = prompt('enter a number');
document.write('shouldn\'t be empty');
}
答案 2 :(得分:1)
var number = null;
while (number !== 0 && !number || number >= 100) {
number = parseInt(prompt('Enter a number, less than 100'));
}
document.write(
number +
' is less than 100 by ' +
(100 - number)
);
这使我们处于一个循环中,该数字是否是有效的整数(我假设你想要的是什么,但你可以将其更改为float或其他东西),只有当用户的输入有效时,它才会进入输出线。
while
循环的第二条件为!number
。这基本上测试了虚假条件,例如NaN
或null
。如果parseInt()
无法确定用户为某个数字输入的内容,则会返回NaN
。当然,我们已将number
变量初始化为null
。
while
的第一条件number !== 0
实际上是必需的,因为测试falsy的第二个条件。 0
是假的,但0
是一个小于100的有效数字,因此我们需要确保让0
有效。像这些短路的条件。这意味着它们从左到右处理,任何未通过测试的条件将立即绕过下面的条件代码块。如果number
为0
,我们知道整个条件都是错误的,我们可以继续前进。
第三条件只是确保我们重新提示我们是否在100
下,如果我们不这样做。
另外,我应该注意document.write()
有一些问题。最好在页面上选择一个元素并设置其文本。