2016-01-22 41 views
-1

我嘗試運行下面的代碼,但它不會工作,並且它好像進入了一個無限循環。你們有沒有看到這有什麼問題?看起來像一個無限循環的代碼問題

var myBool = true 
for(var i=0;i<10;i++){ 
    console.log("Jippi " + i) 
    if(i===5) { 
     myBool = false; 
     console.log("!!!") 
     } 

    do { 
     console.log("While er fortsatt med") 

} while(myBool==true); 
} 

我剛開始學習javascript,想混用-for,-if,-do和-while語句。你們有沒有看到這有什麼問題?我沒有得到任何錯誤。

回答

0

這是一個簡單的邏輯錯誤。讓我們逐步瞭解您的代碼。

​​

每當你指的myBool,你會得到 「真」。

for(var i=0;i<10;i++){

你已經設置了一個循環,將執行10次,禁止任何指令,在循環體相反。

在第一次循環(稱爲第一循環迭代),你會做

console.log("Jippi " + i)

這將打印「Jippi 0」到日誌中。

if(i===5) {

i此時的值是0,所以我們跳過什麼是這裏的括號內。

do {

這一切執行隨之而來的至少一次

console.log("While er fortsatt med")

這將打印 「雖然ER fortsatt配有」 到日誌中。

} while(myBool==true);

這就建立了一個循環。在這一點上,myBool是真實的,所以你回到大括號do後:

{ 
    console.log("While er fortsatt med") 
} 

再次,您打印「雖然ER fortsatt配有」到日誌中。

myBool仍然如此,所以你只是不斷重複console.log聲明。

我不確定你在做什麼,但爲了消除這裏的無限循環,你只需要刪除「do-while」循環。

+0

很好的解釋。謝謝:-) – Carl