Я работаю над простой программой, которая должна перечислять числовые значения в массиве; определенным образом. Вот как я хотел бы, чтобы результат выглядел так:
Printing Array:
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22
Он должен быть выровнен, как показано выше, и строка должна содержать только 10 цифр. Кажется, у меня все отформатировано правильно, но мои результаты не выглядят так.
Вот что я получаю:
Printing Array:
1
2 3 4 5 6 7 8 9 10 11
12 13 14 15 16 17 18 19 20 21
22
Я не совсем уверен, что делаю не так, но вот мой код:
//disregard the name 'Juice', I like to give my programs weird names
public class Juice
{
public static void main(String[] args)
{
//sets up the array
int[] numbers = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22};
//title
System.out.println("Printing Array: ");
//counting the elements
for (int i = 0; i < numbers.length; i++)
{
//prints each element value with 4 spaces in between
System.out.printf("%4d", numbers[i]);
//once line reaches ten values; print new line
if (i % 10 == 0)
{
System.out.printf("\n");
}
}
}
}
4 ответа
if ((i+1) % 10 == 0)
{
System.out.printf("\n");
}
Ваш код делает то, о чем вы его просили.
В первом цикле i=0
, но i % 10 == 0
также истинно, поэтому он печатает новую строку. Вы можете использовать множество различных подходов, чтобы исправить это, но, вероятно, самым простым будет заменить это условие на (i+1) % 10 == 0
или на i % 10 == 9
.
Ты почти сделал это
public class Juice
{
public static void main(String[] args)
{
//sets up the array
int[] numbers = {1,2,3,4,5,6,7,8,9,10,12,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32};
//title
System.out.println("Printing Array: ");
//counting the elements
for (int i = 0; i < numbers.length; i++)
{
//prints each element value with 4 spaces in between
System.out.printf("%4d", numbers[i]);
//once line reaches ten values; print new line
if (i % 10 == 9)
{
System.out.printf("\n");
}
}
}
}
Я изменил условия на if (i % 10 == 9)
ВЫХОД
Printing Array:
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
31 32
i != 0
не требуется.
В качестве альтернативы, чтобы избежать путаницы между индексом элемента массива и счетчиком элементов, переключитесь на использование цикла foreach.
//counting the elements
int i = 1;
for (int number : numbers) {
//prints each element value with 4 spaces in between
System.out.printf("%4d", number);
//once line reaches ten values; print new line
if (i % 10 == 0) {
System.out.println();
}
i++;
}
Похожие вопросы
Новые вопросы
java
Java — это высокоуровневый объектно-ориентированный язык программирования. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег часто используется вместе с другими тегами для библиотек и/или фреймворков, используемых разработчиками Java.
3
и11
. Зачем ты вообще написал этот массив? Почему бы просто не зациклить от 1 до 22 в циклеfor
?3
и11
, из-за чего эти числа не отображаются в вашем выводе. Не редактируйте свой вопрос, чтобы исправить ошибку; это создает движущуюся цель для отвечающих и рискует заставить правильные ответы выглядеть неправильными. Определенно не меняйте вывод на то, чего не создает опубликованный код.