Bu uyarı neden 9 veya 5 değil başka bir sayı gösteriyor?if ve break ifadeleri ile döngü
for (var i = 0; i < 9; i+=2)
{
if (++i == 5) break;
else continue;
}
alert(i++);
Bu uyarı neden 9 veya 5 değil başka bir sayı gösteriyor?if ve break ifadeleri ile döngü
for (var i = 0; i < 9; i+=2)
{
if (++i == 5) break;
else continue;
}
alert(i++);
Sen döngü başına endeksi birden çok kez artırılmıyor edilmektedir.
İlk geçiş 0'dır, çünkü if
bloğunuzda 0 artırıyorsunuz.
Sıradaki geçiş 3'tür, çünkü artırıcınız for
bloğunda.
sonra if
blok Eğer for
artış ila 4
6 için arttırır.
Ardından, if
artışından 7 tanesi.
Ardından, for
artışından 9 ve for
artık geçerli değil ve bozuluyor.
Bu, beklediğiniz gibi 4 çalışmalıdır. senin for loop
vücudun içinde if statement
alışkanlık true
için değerlendirilecek Çünkü i
değeri 4.
olacak zaman
for (var i = 0; i < 9; i+=2)
{
if (i++ == 5) {
alert(i++);
};
else continue;
}
bu uyaracaktır.
Kodunuzun altında olduğu gibi çalıştırılacak.
Yineleme 1
if(1 == 5) //false
Yineleme 2
if(4 == 5) //false
üçüncü sonra Yineleme 3
if(7 == 5) //false
Yineleme, i
, 9
olacaktır, bu nedenle for döngüsünün durumu bu noktada başarısız olur ve döngü biter. Daha sonra döngü dışında, uyarı i
değerini 9
olarak yazdıracaktır. Çünkü, döngü içinde, if (++i == 5) break
denetimi gerçekleştiğinde asla 5 olmamalıdır.
İlk yinelemede, ben 0'dur. Ama sonra ++i
, 1'i olur, bu nedenle ikinci yinelemede, ben, döngünün başlangıcında 3'tür. Sonra ++1
ben gelecek tekrarında, bu 5 atlanır oluyor böylece 4'e gidin (dolayısıyla asla kopmaz) ve bu senin döngü bittiğinde bırakılır ne zaman, çünkü 9 uyarır 6.
haline yapar .
Döngü dışında uyarı çağırıyorsunuz. Ve o zaman i'nin değeri 9'dur. Ve eğer senin koşulunu asla tatmin etmez. –
Çok teşekkür ederim. – Alexey