public class BeerSong
{
public static void main(String[] args)
{
int beerNum = 99;
String word = "бутылок";
while (beerNum > 0)
{
if (beerNum == 1 || beerNum == 21 || beerNum == 31 || beerNum == 41 || beerNum == 51 ||
beerNum == 61 || beerNum == 71 || beerNum == 81 || beerNum == 91)
{
word = "бутылка"; //в единственном числе - ОДНА бутылка
}
if (beerNum == 4 || beerNum == 2 || beerNum == 3 || beerNum == 22 || beerNum == 23 ||
beerNum == 24 || beerNum == 32 || beerNum == 33 || beerNum == 34 || beerNum == 42
|| beerNum == 43 || beerNum == 52 || beerNum == 53 || beerNum == 54 || beerNum == 62
|| beerNum == 63 || beerNum == 64 || beerNum == 72 || beerNum == 73 || beerNum == 74
|| beerNum == 82 || beerNum == 83 || beerNum == 84 || beerNum == 92 || beerNum == 93
|| beerNum == 94)
{
word = "бутылки";
}
System.out.println(beerNum + " " + word + " пива на стене");
System.out.println(beerNum + " " + word + " пива.");
System.out.println("Возьми одну.");
System.out.println("Пусти по кругу.");
beerNum = beerNum - 1;
if (beerNum > 0)
{
System.out.println(beerNum + " " + word + " пива на стене");
}
else
{
System.out.println("Нет бутылок пива на стене");
}
}
}
}Nata
4 уровень
Почему не всегда срабатывает. Исправить ошибку в коде на английском - легко, просто множественное число. А на русском - я добавляла и расписывала по падежам. Но когда запускаешь код - не все строки принимают условие .... Что не так? И это.... я пока на свой уровень решаю.... что знаю.
Обсуждается
Комментарии (5)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Ksenia VolkovaJava Developer в DXCMaster
23 апреля 2020, 22:17

+6
Ksenia VolkovaJava Developer в DXCMaster
23 апреля 2020, 22:14полезный
Ты присваиваешь значение переменной word в начале цикла.
Потом, когда ближе к концу значение beerNum меняется
падеж может поменяться тоже, но у тебя это произойдет только на следующей итерации цикла.
Логично было бы присваивать значение word не в начале цикла, а как раз после уменьшения beerNum.
Кстати, у тебя не все варианты учтены - для чисел 5-10 нужен свой if. Но вообще эту чаcть можно заметно упростить, если использовать остаток от деления.
+4
Nata
24 апреля 2020, 07:27
Решила!!!:) Спасибо!:) Урашечки :)
0
Павел Безумный учёный Expert
23 апреля 2020, 22:14полезный
После того, как в 30 строке уменьшается количество бутылок пива, значение поля word всё ещё остаётся выбранным для предыдущего количества бутылок. То есть после строки
необходимо задавать полю word новое значение, соответствующее уменьшившемуся количеству бутылок.
+1
Nata
24 апреля 2020, 07:27
Да, Вы правы! Исправила и все получилось!:)
0