#java #do-while
#java #do-while
Вопрос:
Player Anfallare = new Player("A");
Player Forsvarare = new Player("F");
Anfallare.armees = 10;
Forsvarare.armees = 10;
do{
Risk.status();
}while(Anfallare.armees = 0 OR Forsvarare.armees = 0);
Я хотел бы сделать что-то подобное, чтобы это продолжалось status()
до тех пор, пока одно из Anfallare.armees
или Forsvarare.armees
не будет 0
.
Однако это, что я сделал, не работает, я получаю required boolean
, found int
, как я могу сделать это правильно?
Комментарии:
1. Вы программируете риск-игру, верно? :p
2. @Marcelo это правда 🙂
Ответ №1:
продолжайте работу с status () до тех пор, пока один из Anfallare.armees или Forsvarare.armees не станет равным 0
Поскольку вы хотите запускать, status()
пока одно из этих значений не будет равно 0, вам нужно отменить все это:
do {
Risk.status();
} while (Anfallare.armees != 0 amp;amp; Forsvarare.armees != 0);
В переводе это означает: делать, status()
пока оба armees
значения отличны от нуля — так что это имеет то же значение, что и «пока одно из них не станет равным 0».
Условие также может быть записано как отрицание того, что вы написали:
while (! (Anfallare.armees == 0 || Forsvarare.armees == 0) )
Но я думаю, что первую версию легче читать…
Комментарии:
1. Я бы предпочел «while (Anfallare.armees > 0 amp;amp; Forsvarare.armees > 0)».
Ответ №2:
Измените ваше условие while на
while(Anfallare.armees == 0 || Forsvarare.armees == 0)
В Java «или» — это ||
и проверка на равенство — это ==
.
Ответ №3:
Это должно быть:
do {
...
} while(Anfallare.armees == 0 || Forsvarare.armees == 0);
Оператор равенства является ==
и не =
является (то есть оператором присваивания). Кроме того, логическое ИЛИ в Java представлено ||
и не OR
.