Поясните подробнее насчет оператора if (Head First Java)

292
15 октября 2017, 21:32
public class BeerSong {
    public static void main(String args[]) {
        int BeerNum = 99;
        String word = "bottles";
        while(BeerNum > 0) {
            System.out.println(BeerNum + " " + word + " of the beer on the wall");
            System.out.println("Catch one.");
            System.out.println("Take around.");
            BeerNum = BeerNum - 1;
            if(BeerNum == 1) {
                word = "bottle";
            }
            if(BeerNum > 0) {
                System.out.println(BeerNum + " " + word + " of the beer on the wall");
            } else {
                System.out.println("Nothing on the wall");
            }
        }
    }
}

Сам вопрос насчет:

if(BeerNum == 1)
word = "bottle";
}

Если его поставить сразу после while, то в конце будет так: 1 bottles of the beer on the wall. 1 bottle of the beer on the wall.

Почему для првой строки берется множественное значение, а для второй единственное? В тоже время, если поставить данный оператор if после BeerNum = BeerNum - 1; то оба значения будут в единственном числе. Объясните. почему такая разница? Разве есть различие, где ставить if в начале блока кода или после уменьшения? Спасибо!

READ ALSO
Добавление дополнений в игру

Добавление дополнений в игру

Моя программа - это справочное приложение по настольной игреВ ней довольно много параметров (число монстров на карте, отслеживание игровых...

226
java, вычисление факториала

java, вычисление факториала

Здравствуйтекак получить полное число, которое выходит за пределы типа long, и соответственно выдает не правильный ответ

391
Выбор перехода между стэйтами по String

Выбор перехода между стэйтами по String

Как реализовать метод select, чтобы отрабатывались переходы selectOne, selectTwo при вызове метода?

250