While tsikli qaysi qiymatlarni ko'rsatadi?
Har bir tsikl iteratsiyasi uchun qaysi qiymatni chiqarishini yozing va keyin uni natija bilan solishtiring.
Har ikki tsikl bir xil qiymatlarni alert orqali chiqariladimi, yoki yoqmi?
-
++iprefiks shakli:let i = 0; while (++i < 5) alert(i); -
Postfiks shakli
i++let i = 0; while (i++ < 5) alert(i);
Vazifa postfiks / prefiks shakllari taqqoslashda foydalanilganda qanday qilib turli xil natijalarga olib kelishi mumkinligini namoyish etadi.
-
1 dan 4 gacha
let i = 0; while (++i < 5) alert(i);Birinchi qiymat
i = 1dir, chunki++ iavvalini oshiradi va keyin yangi qiymatni qaytaradi. Shunday qilib, birinchi taqqoslash1 < 5vaalert1ni korsatadi.Keyin
2,3,4...ga amal qiling qiymatlar birin-ketin paydo boladi. Taqqoslash har doim kopaytirilgan qiymatdan foydalanadi, chunki++ozgaruvchandan oldin.Va nihoyat,
i = 45ga oshiriladi, taqqoslashwhile(5 < 5)ishlamay qoladi va tsikl toxtaydi. Shunday qilib,5korsatilmaydi. -
1 dan 5 gacha
let i = 0; while (i++ < 5) alert(i);Birinchi qiymat yana
i = 1dir.i++ning postfiks shakliini oshiradi va keyin eski qiymatini qaytaradi, shuning uchuni++ < 5taqqoslashidai = 0ishlatiladi (++i < 5ga zid).Ammo
alertchaqiruvi alohida. Bu osish va taqqoslashdan keyin bajariladigan yana bir ifoda. Shunday qilib, u joriyi = 1ni oladi.Keyin
2,3,4...Keling,
i = 4da toxtaylik.++iprefiksi uni kopaytiradi va taqqoslashda5dan foydalanadi. Ammo bu erda bizi++postfiksi shakliga egamiz. Shunday qilib, uidan5gacha kotariladi, lekin eski qiymatni qaytaradi. Shuning uchun taqqoslash aslidawhile (4 < 5)togri va boshqaruvalertga otadi.i = 5qiymati oxirgi hisoblanadi, chunki keyingi bosqichdawhile(5 < 5)notogri.