Я пытаюсь отформатировать вывод таблицы умножения, в которой вы можете иметь только 5 чисел / целых чисел в одной строке. Я пытаюсь использовать метод printf в цикле for, но пока он не работает.
Код:
System.out.println("Which multiplication table do you want to print?: ");
int number = input.nextInt();
int calculation;
System.out.println("Multiplication table: " + number + ":");
for (int i = 1; i <= 10; i++ ) {
calculation = number * i;
System.out.printf("%-5s ", calculation);
}
Мой вывод:
3 6 9 12 15 18 21 24 27 30
Вывод, который я пытаюсь получить:
3 6 9 12 15
18 21 24 27 30




Печатайте перенос строки через каждые 5 чисел:
calculation = number * i;
System.out.printf("%-5s ", calculation);
if (i % 5 == 0) {
System.out.println();
}
Напечатайте новую строку после печати 5 элементов:
if (i % 5 == 0)
System.out.println();
Я думаю, у вас есть несколько способов добиться этого:
1. Выведите новую пустую строку после 5-го итерации.
2. Добавьте "\n", чтобы отметить конец строки.
1.
for (int i = 1; i <= 10; i++ ) {
calculation = number * i;
if (i % 5 == 0) {
System.out.println();
}
System.out.printf("%-5s ", calculation);
}
2.
for (int i = 1; i <= 10; i++ ) {
calculation = number * i;
if (i % 5 == 0) {
System.out.printf("\n");
}
System.out.printf("%-5s ", calculation);
}
Надеюсь это поможет
Ах, извините за то, что не объяснил этого. % - это оператор модуль в Java или по модулю в Python (если я не ошибаюсь), но это одно и то же. По сути, это операция деления, но вместо возврата значения частное она возвращает остаток. `x% 5 == 0` - это выражение для проверки, полностью ли x делится на 5, так как остаток от этой операции деления равен 0. Здесь это хорошо объяснено stackoverflow.com/questions/17524673/… Надеюсь, это поможет
Еще один вопрос, для чего именно используется оператор "%" и когда он используется чаще всего (примеры, пожалуйста)?