2014-10-28 59 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);