Не выводится в консоли Buzz вместо числа 10

Не понимаю по какой причине моя программа не выводит в консоль слово Buzz вместо числа 10.

Входные данные для begin = 8, для end = 16

Мой код:

String fb = "FizzBuzz";
    String f = "Fizz";
    String b = "Buzz";
    Scanner scn = new Scanner(System.in);
    int begin = scn.nextInt();
    int end = scn.nextInt();
    if (begin != end) {
        for (int i = begin; i <= end; i++) {
            if (i % 3 == 0 && i % 5 == 0) {
                System.out.println(fb);
                i++;
            } else if (i % 3 == 0) {
                System.out.println(f);
                i++;
            } else if (i % 5 == 0) {
                System.out.println(b);
                i++;
            }
            System.out.println(i);
        }
    } else {
        for (int i = begin; i <= end; i++){
            if (i % 3 == 0 && i % 5 == 0) {
                System.out.println(fb);
            } else if (i % 3 == 0) {
                System.out.println(f);
            } else if (i % 5 == 0) {
                System.out.println(b);
            }
        }
    }

Ответы (1 шт):

Автор решения: Barmaley

Потому что вы инкрементируете счетчик цикла дважды, сначала в самом цикле, потом когда выпадает условие. Например, когда i==9, срабатывает ветка if(i%3==0) - где счетчик перескакивает до 10, далее вы его печатаете в завершающем println(i) и получаете свою 10

→ Ссылка