如下面的代码所示,我的循环将永远进行下去。
我希望程序通过使用增量和减量来根据用户说add
还是subtract
来获取用户输入的up
或down
10。
任何提示或帮助都将是惊人的!预先谢谢你。
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);
}
}
}
答案 0 :(得分:3)
第一个提示呼叫的结果不是数字,您必须使用+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();
答案 1 :(得分:2)
虽然您得到的答案可以满足您的需求,但我发现您有两个循环让我有些不满意。这是您可以单循环执行此操作的另一种方法(根据给定的方向存储乘数):
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();