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 yoâqmi?
-
++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 koârsatadi.Keyin
2,3,4...ga amal qiling â qiymatlar birin-ketin paydo boâladi. Taqqoslash har doim koâpaytirilgan qiymatdan foydalanadi, chunki++oâzgaruvchandan oldin.Va nihoyat,
i = 45ga oshiriladi, taqqoslashwhile(5 < 5)ishlamay qoladi va tsikl toâxtaydi. Shunday qilib,5koârsatilmaydi. -
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 oâsish va taqqoslashdan keyin bajariladigan yana bir ifoda. Shunday qilib, u joriyi = 1ni oladi.Keyin
2,3,4...Keling,
i = 4da toâxtaylik.++iprefiksi uni koâpaytiradi va taqqoslashda5dan foydalanadi. Ammo bu erda bizi++postfiksi shakliga egamiz. Shunday qilib, uidan5gacha koâtariladi, lekin eski qiymatni qaytaradi. Shuning uchun taqqoslash aslidawhile (4 < 5)â toâgâri va boshqaruvalertga oâtadi.i = 5qiymati oxirgi hisoblanadi, chunki keyingi bosqichdawhile(5 < 5)notoâgâri.