#java #for-loop #if-statement #arraylist
#java #цикл for #if-оператор #список массивов
Вопрос:
Я недавно начал изучать Java. У меня есть задача, в которой я должен напечатать числовую сетку с определенными значениями в ней.
Вот код:
public static void main(String[] args) {
int array[][] = {{1, 2, 3, 5, 7},
{10, 11, 12, 14, 16},
{19, 20, 21, 23, 25},
{28, 29, 30, 32, 34},
{37, 38, 39, 41, 43},
{46, 47, 48, 50, 52}};
for (int i = 0; i < array.length; i ){
for (int j = 0; j < array[i].length; j ) {
System.out.print(array[i][j] " ");
}
System.out.println("");
}
}
}
Теперь это работает отлично, но в идеале я мог бы объявлять значения только первой строки и использовать цикл for с оператором if для выполнения того же самого, но я изо всех сил пытаюсь найти код для этого.
Комментарии:
1. Похоже, вы даже не пытались эту модификацию.
2. Мое предложение состояло бы в том, чтобы просто начать и попробовать что-нибудь, использовать IDE, такую как Eclipse или Intellij, для быстрой отладки больших ошибок, а затем запустить ее с помощью отладчика в этих IDE. Потратьте несколько часов и доработайте столько, сколько сможете. Затем, если вы все еще застряли, отправьте вопрос с любым кодом, который у вас есть на данный момент.
3. Вам не нужен оператор if; вам нужен способ вычисления значения для печати на основе значений
i
иj
и первой строки значений.
Ответ №1:
Разница между двумя элементами в столбце равна 9: a[i][j] = a[i-1][j] 9
, таким образом, код может быть изменен как:
public static void main(String args[]) {
int array[][] = new int[6][5];
// initialize the first row
array[0] = new int[] {1, 2, 3, 5, 7};
// print the first row
System.out.println(Arrays.toString(array[0]));
for (int i = 1; i < array.length; i ) {
// populate current row incrementing each element by 9
for (int j = 0; j < array[i].length; j ) {
array[i][j] = array[i - 1][j] 9;
}
System.out.println(Arrays.toString(array[i]));
}
}
Вывод:
[1, 2, 3, 5, 7]
[10, 11, 12, 14, 16]
[19, 20, 21, 23, 25]
[28, 29, 30, 32, 34]
[37, 38, 39, 41, 43]
[46, 47, 48, 50, 52]
Обновить
Было бы более интересной задачей сгенерировать последовательность, начинающуюся с 1. Внутри строки различия между двумя соседними элементами изменяются следующим образом 1, 1, 2, 2, 3
, и 3
— это разница между последним элементом предыдущей строки и первым элементом в следующей строке.
int x = 1;
for (int i = 1; i < 7; i ) {
for (int j = 1; j < 6; j ) {
System.out.print(x " ");
x = j / 2 j % 2;
}
System.out.println();
}
Комментарии:
1. То, что я продолжал делать, это то, что я инициализировал другой int, установив его как array [i] [j] и добавив к нему 9, но он просто выдал много чисел.