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?
-
++i
prefiks 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 = 1
dir, chunki++ i
avvali
ni oshiradi va keyin yangi qiymatni qaytaradi. Shunday qilib, birinchi taqqoslash1 < 5
vaalert
1
ni 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 = 4
5
ga oshiriladi, taqqoslashwhile(5 < 5)
ishlamay qoladi va tsikl to’xtaydi. Shunday qilib,5
ko’rsatilmaydi. -
1 dan 5 gacha
let i = 0; while (i++ < 5) alert(i);
Birinchi qiymat yana
i = 1
dir.i++
ning postfiks shaklii
ni oshiradi va keyin eski qiymatini qaytaradi, shuning uchuni++ < 5
taqqoslashidai = 0
ishlatiladi (++i < 5
ga zid).Ammo
alert
chaqiruvi alohida. Bu o’sish va taqqoslashdan keyin bajariladigan yana bir ifoda. Shunday qilib, u joriyi = 1
ni oladi.Keyin
2,3,4...
Keling,
i = 4
da to’xtaylik.++i
prefiksi uni ko’paytiradi va taqqoslashda5
dan foydalanadi. Ammo bu erda bizi++
postfiksi shakliga egamiz. Shunday qilib, ui
dan5
gacha ko’tariladi, lekin eski qiymatni qaytaradi. Shuning uchun taqqoslash aslidawhile (4 < 5)
– to’g’ri va boshqaruvalert
ga o’tadi.i = 5
qiymati oxirgi hisoblanadi, chunki keyingi bosqichdawhile(5 < 5)
noto’g’ri.