Не выводится в консоли 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