如下面的代码所示,我的循环将永远进行下去。
我希望该程序根据用户使用增量和递减来表示add或subtract 10来获取用户的输入和up或down。
任何提示或帮助都将是惊人的!提前谢谢你。
function runprogram() {
var thenumber=prompt('Give me a number to increment or decrement!')
var updown=prompt('Should I increment it up or down?')
var thenumberup= (thenumber + 10)
var thenumberdown=(thenumber - 10)
var i;
if(updown == 'up') {
for(i = thenumber; i < 10; i++) {
alert(i);
}
}
if(updown == 'down') {
for (i = thenumber; i > 10 ; i--) {
alert(i);
}
}
}
发布于 2018-10-29 20:45:49
第一个提示调用的结果不是数字,您必须使用+prompt('...')强制将其强制到一个数字。
作为@Adrián mentioned in the comments,比较还应该是<=和>=,否则它将直接停在目标号之前。
function runprogram() {
var thenumber = +prompt('Give me a number to increment or decrement!')
var updown = prompt('Should I increment it up or down?')
var thenumberup = (thenumber + 10)
var thenumberdown = (thenumber - 10)
var i;
if (updown == 'up') {
for (i = thenumber; i <= thenumberup; i++) {
alert(i);
}
}
if (updown == 'down') {
for (i = thenumber; i >= thenumberdown; i--) {
alert(i);
}
}
}
runprogram();
发布于 2018-10-29 20:52:30
虽然你得到了一个能满足你需要的答案,但我觉得你有两个循环有点不满意。另一种方法是使用单个循环(根据给定的方向存储乘法器):
function run() {
var number = +prompt('number', 0)
var direction = prompt('up or down?', 'up')
var multiplier = direction === 'up' ? 1 : -1
for (var i = 0; i < 10; i++) {
alert(number + (i * multiplier));
}
}
run();
https://stackoverflow.com/questions/53053371
复制相似问题