Page 90 - Браун Э. - Изучаем JavaScript. Руководство по созданию современных веб-сайтов - 2017
P. 90

i
       Ц и к  n do  .  .  . wh l e

          Когда Т о мас  е   вытаскивает случайно 7 пенсов,  н   распределяет наличность меж­
                                                     о
                     н
       ду полями случайно. У  него  и для этого  есть ритуал: он  держит  монеты в правой
       руке, а левой выбирает их случайное количество (от только одной до всех) и ставит
       на случайное поле (иногда на то же поле несколько раз). Теперь мы можем моди­
       фицировать свою блок-схему так, чтобы отразить это случайное распределение всех
       ставок, как показано на рис. 4.4.




                                                      Цикл do-while



















                                                         Да


                    bets[face]  =    remaining =
                   bets[face] + bet   remaining - bet


             Рис. 4.4. Модель игры "Корона и Якорь": блок-схема распределения ставок

          Обратите внимание, насколько это отличается от цикла while: решение принимается
       в конце, а не в начале. Цикл do  .  .  . while подходит тогда, когда вы знаете, что тело цикла

       необходимо выполнить по к р айней мере один раз (если условие цикла while изначально
       ложно, он не будет выполнен даже однажды). Вот как это выглядит в JavaScript.
       let  remaining  =  totalBet ;
       do  {
           let  bet  =  rand ( l ,   remaining) ;
           let  face  =  randFace ( ) ;
                                      t
           be s [ f ace ]   =  bets [ face ]  +  be ;
             t
           remaining  =  remaining  - be ;
                                    t
         while ( remaining  >  0 } ;

                                           Учебник для новичков в управлении потоком   89
   85   86   87   88   89   90   91   92   93   94   95