i <== 5;// выполнение цикла будет продолжаться,

// пока значение i меньше или равно 5 i ++ ) //по окончании очередного цикла

//увеличиваем значение i на 1 {

// здесь расположен блок, повторяемый в цикле }

Внутри цикла

А как будет работать программа при обработке каждого броска? Примерно так же, как и раньше. Прежде всего в повторяемом логическом блоке (он еще называется телом цикла) надо проверить, не выпала ли на кубике единица. Если нет, то выпавшее значение надо прибавить к очкам, уже накопленным на данном ходу. Если выпала — накопленные очки надо обнулить. Также желательно проверить, не набрано ли 20 (или более) очков, и при необходимости прекратить бросать кубик.

С накоплением очков все понятно:

// если на кубике выпала не единица, то... if( Dice.GetDiceValueO i= 1 )

I I запомнить очки

Computer.CurrentScores += Dice.LastValue;

А вот в противном случае, когда выброшена единица, текущие очки надо обнулить:

else Computer.CurrentScores = 0;

Но верно ли это? Ведь после того как в переменную Computer.CurrentScores записан ноль, выполнение цикла может продолжиться (если число, хранящееся в счетчике, меньше пяти), и на следующем броске в эту переменную может записаться новое значение, что противоречит правилам. В случае выпадания единицы бросание кубиков надо немедленно прервать, вне зависимости от того, сколько раз их намечено бросить — один или пять.

Остановка цикла

Чтобы немедленно прервать работу оператора for, используется оператор break. Он не имеет параметров и записывается так:

break ;

159