Ðакие знаÑÐµÐ½Ð¸Ñ Ð²ÑÐ²ÐµÐ´ÐµÑ Ñикл while?
ÐÐ»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ Ñикла запиÑиÑе, какие знаÑÐµÐ½Ð¸Ñ Ð¾Ð½ вÑведеÑ. ÐоÑом ÑÑавниÑе Ñ Ð¾ÑвеÑом.
Ðба Ñикла вÑводÑÑ alert Ñ Ð¾Ð´Ð¸Ð½Ð°ÐºÐ¾Ð²Ñми знаÑениÑми или неÑ?
-
ÐÑеÑикÑнÑй ваÑианÑ
++i:let i = 0; while (++i < 5) alert( i ); -
ÐоÑÑÑикÑнÑй ваÑианÑ
i++let i = 0; while (i++ < 5) alert( i );
ÐадаÑа демонÑÑÑиÑÑеÑ, как поÑÑÑикÑнÑе/пÑеÑикÑнÑе ваÑианÑÑ Ð¼Ð¾Ð³ÑÑ Ð¿Ð¾Ð²Ð»Ð¸ÑÑÑ Ð½Ð° ÑезÑлÑÑаÑ, когда иÑполÑзÑÑÑÑÑ Ð² ÑÑавнениÑÑ .
-
ÐÑ 1 до 4
let i = 0; while (++i < 5) alert( i );ÐеÑвое знаÑение:
i = 1, Ñак как опеÑаÑиÑ++iÑнаÑала ÑвелиÑиÑi, а поÑом Ñже пÑоизойдÑÑ ÑÑавнение и вÑполнениеalert.Ðалее
2, 3, 4â¦ÐнаÑÐµÐ½Ð¸Ñ Ð²ÑводÑÑÑÑ Ð¾Ð´Ð½Ð¾ за дÑÑгим. ÐÐ»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ знаÑÐµÐ½Ð¸Ñ ÑнаÑала пÑоиÑÑ Ð¾Ð´Ð¸Ñ ÑвелиÑение, а поÑом â ÑÑавнение, Ñак как++ÑÑÐ¾Ð¸Ñ Ð¿ÐµÑед пеÑеменной.ÐÑи
i = 4пÑоизойдÑÑ ÑвелиÑениеiдо5, а поÑом ÑÑавнениеwhile (5 < 5)â ÑÑо невеÑно. ÐоÑÑÐ¾Ð¼Ñ Ð½Ð° ÑÑом Ñикл оÑÑановиÑÑÑ, и знаÑение5вÑведено не бÑдеÑ. -
ÐÑ 1 до 5
let i = 0; while (i++ < 5) alert( i );ÐеÑвое знаÑение:
i = 1. ÐÑÑановимÑÑ Ð½Ð° нÑм подÑобнее. ÐпеÑаÑоÑi++ÑвелиÑиваеÑi, возвÑаÑÐ°Ñ ÑÑаÑое знаÑение, Ñак ÑÑо в ÑÑавненииi++ < 5бÑÐ´ÐµÑ ÑÑаÑÑвоваÑÑi = 0(в оÑлиÑие оÑ++i < 5).Ðо поÑледÑÑÑий вÑзов
alertÑже не оÑноÑиÑÑÑ Ðº ÑÑÐ¾Ð¼Ñ Ð²ÑÑажениÑ, Ñак ÑÑо полÑÑÐ¸Ñ Ð½Ð¾Ð²Ñйi = 1.Ðалее ÑледÑÑÑ
2, 3, 4â¦.ÐÑÑановимÑÑ Ð½Ð°
i = 4. ÐÑеÑикÑÐ½Ð°Ñ ÑоÑма++iÑвелиÑила бÑiи иÑполÑзовала Ð±Ñ Ð² ÑÑавнении5. Ðо здеÑÑ Ð¼Ñ Ð¸Ð¼ÐµÐµÐ¼ поÑÑÑикÑнÑÑ ÑоÑмÑi++, поÑÑÐ¾Ð¼Ñ Ð¾Ð½Ð° ÑвелиÑиваеÑiдо5, но возвÑаÑÐ°ÐµÑ ÑÑаÑое знаÑение. Таким обÑазом, ÑÑавнение ÑакÑиÑеÑки Ñавноwhile (4 < 5)âtrue, поÑÑÐ¾Ð¼Ñ ÑÑабаÑÑваеÑalert.ÐнаÑение
i = 5â поÑледнее, Ñак как на ÑледÑÑÑем Ñагеwhile (5 < 5)âfalse.