2014-10-28 54 views
2

我试图创建一个while循环,输出值的列表,将它们加在一起,并输出一个带有“=”符号的总数 也就是说,如果用户输入号5和12中,输出将出现这样的: 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 =总虽然循环和输出数学运算符

这是如何我的 '而' 循环如下现在:

while(enteredNum1 <= enteredNum2){ 
    total += enteredNum1; 
    document.write(enteredNum1 + " + "); 
    enteredNum1++; 
} 

document.write("= " + total); 

我知道它会一直追加“+”,但任何人都可以指向正确的方向,让最后一个值显示“=”而不是“+”吗?

+0

您可以将加号分开写入'enteredNum1'并检查循环是否会再次运行,如果它会写'+'否则进行 – Quince 2014-10-28 16:10:57

回答

0

任何简单的方法将是一个if语句检查,如果循环将继续:

while(enteredNum1 <= enteredNum2) { 
    total += enteredNum1; 
    if (enteredNum1 + 1 <= enteredNum2) { 
     document.write(enteredNum1 + " + "); 
    } else { 
     document.write(enteredNum1); 
    } 

    enteredNum1++; 
} 

document.write(" = " + total); 

或者,将输出保存为一个字符串,并采取“+”off使用substring也可以工作

+0

谢谢,SuckerForMayhem! 从未考虑在while循环中使用if/else! – kmancusi 2014-10-28 20:02:33

+0

考虑使用数组而不是多次调用document.write并通过if/else增加复杂性。见下文。 – KyleK 2014-10-29 19:15:31

+0

@KyleK我同意,使用数组和'join'更好,这只是一个简单的改变 – SuckerForMayhem 2014-10-30 15:25:27

0

这应该工作:

total += enteredNum1; 
document.write(enteredNum1); 
enteredNum1++; 

while(enteredNum1 <= enteredNum2){ 
    total += enteredNum1; 
    document.write(" + " + enteredNum1); 
    enteredNum1++; 
} 

document.write("= " + total); 
5

替代;

var numbers = []; 
while(enteredNum1 <= enteredNum2){ 
    total += enteredNum1; 
    numbers.push(enteredNum1++); 
} 

document.write(numbers.join(" + ") + " = " + total); 
1

有道:

list = []; 
total = 0; 
enteredNum1 = parseInt(enteredNum1); // parseInt only if enteredNum1 can be a string 
while(enteredNum1 <= enteredNum2) { 
    total += enteredNum1; 
    list.push(enteredNum1); 
    enteredNum1++; 
} 

document.write(list.join(" + ") + " = " + total);