【发布时间】:2017-12-07 06:28:27
【问题描述】:
做一个练习,我不知道为什么我的 while 循环没有转义,它一直说即使只输入数字,这些值也是无效的。有什么想法吗?
// 31. Karvonen Heart Rate
var age, restingPulse, targetRate, numCheckAge, numCheckPulse, valid;
valid = false;
numCheckAge = /^\d+$/.test(age);
numCheckPulse = /^\d+$/.test(restingPulse);
while(valid === false) {
age = parseFloat(prompt("Enter your age:"));
restingPulse = parseFloat(prompt("Enter your resting heart rate:"));
if(numCheckAge === true && numCheckPulse === true) {
valid = true;
} else {
alert("Sorry. That's not a valid input, please enter numbers.");
}
}
for (var i = 0.55; i < 1; i+=0.05){
targetRate = (((220 - age) - restingPulse) * i) + restingPulse;
document.write("Intensity: " + Math.round((i * 100)) + "% | Rate: " + Math.round(targetRate) + "<br>");
}
【问题讨论】:
-
您需要在循环内的正则表达式上执行
tests(在输入age和restingPulse之后)。 -
使用调试器会立即显示
numCheckAge和numCheckPulse只设置一次,以后不会更新... -
另外,您可以使用
isNaN(age)而不是正则表达式来检查输入是否为数字
标签: javascript for-loop while-loop