2014-10-08 157 views
0

我寫了一個do while循環,但即使未滿足條件,它也不會循環。在一個名爲quotes的數組中,我將輸入數字與該數組的長度進行比較,以確保它只修改已存在的元素。即使我添加更高的數字,它只是將它添加到該數組元素。當條件未滿足時JavaScript停止循環

function modifyQuote(){ 
    'use strict' 

    var modifyQuoteNum = 0 
    do{ 
     var inputModify = prompt("what quote do you want to modify?"); 
     modifyQuoteNum = (parseInt(inputModify) - 1); 
    } 
    while ((typeof modifyQuoteNum == 'number') && 
     ((modifyQuoteNum + 1) <= quotes.length)); 

想通了,搞混了。

function modifyQuote(){ 
    'use strict' 

    var inputModify = prompt("what quote do you want to modify?"); 
    var modifyQuoteNum = (parseInt(inputModify) - 1); 

    while ((typeof modifyQuoteNum != 'number') || 
     ((modifyQuoteNum + 1) > quotes.length)){ 

     var inputModify = prompt("what quote do you want to modify?"); 
     var modifyQuoteNum = (parseInt(inputModify) - 1); 

    } 

回答

2

它看起來像你的情況是錯誤的。

它不會不斷循環,即使條件不滿足

這就是while迴路是如何工作的:他們只有不斷循環,而條件滿足。

該修復是微不足道的,所以我會讓你弄清楚它是什麼樣的練習。

+0

+1爲教師的答案 – xShirase 2014-10-08 06:08:36

+0

好吧,我明白你的意思。 – EsotericRider 2014-10-08 06:24:07