Вложенный цикл для добавления данных в массив - PullRequest
0 голосов
/ 30 октября 2018

Я действительно изо всех сил пытаюсь понять вложенные в циклы и сделал следующее:

    int arr[][] = new int[10][3];
    int i, j;

    arr[0][0]=21;  
    arr[1][0]=41;  
    arr[2][0]=61;  
    arr[3][0]=81;  
    etc.

... чтобы получить следующий вывод:

21 21 21
41 41 41
61 61 61
81 81 81
etc.

Я понимаю, что это крайне неэффективно, поэтому попытался создать вложенный цикл, который явно не работает:

for(i=21;i<81;i+=20)
        {
           for(j=0;j<arr[i].length;j++)
           {
              arr[i][j] = i+j;
           }
        }

Руководство в правильном направлении очень ценится. Благодаря.

Ответы [ 3 ]

0 голосов
/ 30 октября 2018

Формула, которая вас интересует, выглядит как ((i + 1) * 20) + 1, которая даст вам значение с правильным индексом на основе нуля. Как,

int[][] arr = new int[10][3];
for (int i = 0; i < arr.length; i++) {
    int c = ((i + 1) * 20) + 1;
    for (int j = 0; j < arr[i].length; j++) {
        arr[i][j] = c;
    }
}
System.out.println(Arrays.deepToString(arr));

Выходы (отформатированные для записи)

[[21, 21, 21], [41, 41, 41], [61, 61, 61], [81, 81, 81], 
 [101, 101, 101], [121, 121, 121], [141, 141, 141], 
 [161, 161, 161], [181, 181, 181], [201, 201, 201]]

Примечание мы могли бы использовать Arrays.fill(int[], int) также для заполнения массива. Как,

for (int i = 0; i < arr.length; i++) {
    int c = ((i + 1) * 20) + 1;
    Arrays.fill(arr[i], c);
}
0 голосов
/ 30 октября 2018

Я думаю, это то, что вы можете искать. Надеюсь, это поможет

int minValue = 21, increament = 20;
int arr[][] = new int[4][3];
for(int i = 0; i < arr.length; i++)
{
  for(int j = 0; j < arr[i].length; j++)
  {
    arr[i][j] = minValue;
  }
}
minValue += increament;
0 голосов
/ 30 октября 2018

Это то, что я пробовал, кажется, оно соответствует вашему требованию, вы можете проверить это.

    int arr[][] = new int[10][3];
    int i, j;
    int value = 21;
    for(i =0; i <10;i++) {
        for(j = 0; j <3; j++) {
            arr[i][j] = value;
        }
        value +=20;
    }
...