Какво ще излезе от следния код.
for(var i=0; i<5; i++){
for(var i=0; i<3; i++){
console.log(i + " " + i);
}}
Защо е безкраен цикъл.
Отговори:
0 за отговор № 1Това е защото използвате i
два пъти, така че всеки път, когато влизате във втория цикъл, възстановявате i до 0.
Вашият код трябва да бъде:
for(var i=0; i<5; i++){
for(var j=0; j<3; j++){
console.log(i + " " + j);
}}
0 за отговор № 2
Тъй като всяка итерация на външния цикъл вътрешният контур възстановява i до 0. Тя никога няма да стигне до 5.
for(var i=0; i<5; i++){
// will be 4 here then reset to 0 it will only ever make it to 4 never reach 5.
for(var i=0; i<3; i++){
console.log(i + " " + i);
}}
0 за отговор № 3
Това е така, защото когато влезете в първата си линия с 0, възстановявате обратно до 0 и когато вашият I стане 3, излизате от вътрешната линия и влизате външно за 4 и след това отново се нулира до 0 и отива в цикъл ,
Можете да разрешите проблема, като използвате две различни променливи, като:
for(var i=0; i<5; i++) {
for(var j=0; j<3; j++) {
console.log(i + " " + j);
}
}
0 за отговор № 4
Тъй като var
декларацията ще бъде издигната до върха на обхвата (аз не влизам в подробности защо), кодът ще свърши работа така:
var i;
for(i = 0; i < 5; i++
{
for(i = 0; i < 3; i++)
{
}
}
Смятате, че един далечен цикъл създава нов "код блок" (обхват), но не го прави. Ако трябва да направите това:
for(var i = 0; i < 5; i++)
{
+function() {
for(var i = 0; i < 3; i++
{
}
}();
}
Тогава тя ще работи wya мислите, че ще работи сега, но не трябва т. Трябва просто да използвате 2 различни променливи.
0 за отговор № 5
1st iteration of loop #1
starts with i = 0
1st iteration of loop #2
starts with i = 0
ends with i = 1
2nd iteration of loop #2
starts with i = 1
ends with i = 2
3rd iteration of loop #2
starts with i = 2
ends with i = 3
ends with i = 4
2nd iteration of loop #1
starts with i = 4
1st iteration of loop #2
starts with i = 0
ends with i = 1
2nd iteration of loop #2
starts with i = 1
ends with i = 2
3rd iteration of loop #2
starts with i = 2
ends with i = 3
ends with i = 4
3nd iteration of loop #1
starts with i = 4
1st iteration of loop #2
starts with i = 0
ends with i = 1
2nd iteration of loop #2
starts with i = 1
ends with i = 2
3rd iteration of loop #2
starts with i = 2
ends with i = 3
ends with i = 4
безкрайно ;)