我試圖在for循環中使用while循環,但是每次嘗試時都會導致瀏覽器崩潰。我知道這發生在循環無限時,但我似乎無法弄清楚爲什麼。雖然for循環內部的循環無法正常工作
for(i=0;i < 2; i++)
{
console.log("hello");
while(i < 2)
{
console.log("it's me");
}
}
我試圖在for循環中使用while循環,但是每次嘗試時都會導致瀏覽器崩潰。我知道這發生在循環無限時,但我似乎無法弄清楚爲什麼。雖然for循環內部的循環無法正常工作
for(i=0;i < 2; i++)
{
console.log("hello");
while(i < 2)
{
console.log("it's me");
}
}
問題是while循環,一旦i
變爲0,就再也回不來了while循環的(因爲它是小於2)
可能的解決方案:
解決方案1 :刪除而循環目前循環
SOLUTION 2:處理而內部,並且做一些
for(i=0;i < 2; i++)
{
console.log("hello");
while(i < 2)
{
console.log("i < 2");
break;
}
}
解決方案3之後打破:更改I的> = 2的while循環中的值,使得在環斷裂
感謝偉大的解釋,沒有想過while循環被卡住,所以我不會++ –
發生什麼事是你的while循環永遠不會結束;我的價值永遠不會在循環內部發生變化,所以循環會一直持續下去。
也許你在做的是記錄消息「這是我」,當我,在for循環,是< 2.在這種情況下,你可以使用一個簡單的if語句,這樣你的代碼讀取類似這個:
for(var i=0;i<2;i++){
console.log("hello");
if(i<2) console.log("it's me");
}
我建議玩弄數字值並測試它以獲得更好的JS語法工作方式。
您永遠循環while循環,因爲i
保持該值並且永遠不會在內部進行更改。
我想你可能會使用更好的if語句來獲得額外的輸出。
var i;
for (i = 0; i < 2; i++) {
console.log("hello");
if (i < 2) {
console.log("it's me");
}
}
謝謝,定時器後會接受你的答案! –
for(i=0;i < 2; i++)
{
console.log("hello");
while(i < 2)
{
//Once this block is entered, value of i is never changed and the condition
//is always true.
console.log("it's me");
}
}
將其更改爲類似下面使用塞康變量,如果要循環中,而部分。
for(i=0;i < 2; i++)
{
console.log("hello");
j=0;
while(j < 2)
{
j++;
console.log("it's me");
}
}
由於'i'在while循環中沒有改變,這個循環永遠不會停止。 – Titus
你什麼時候預期'while'循環停止?你是不是指「如果」?或者你想要什麼樣的整體調音臺輸出? – Bergi
它永遠不會停止,因爲我永遠不會在循環中超過2,並且您的瀏覽器將無響應。 –