2016-05-07 3 views
-8

ли цикл ниже в Java визита все индексы или матрица смежности это сделать толькоДоступ Индексы Вложенный цикл

adjacencyMatrix[1][1]; 
adjacencyMatrix[2][2]; 
adjacencyMatrix[3][3]; 
adjacencyMatrix[4][4]; 

т.д.

for (int i = 1; i <= number_of_nodes; i++) 
     for (int j = 1; j <= number_of_nodes; j++) 
      adjacencyMatrix[i][j] = adjacency_matrix[i][j]; 

Благодаря

+1

Почему бы не проверить? – Pshemo

+0

В Java массивы индексируются начиная с 0. –

+1

Пройдите в отладчик или выведите значение i & j для каждой (вложенной) итерации цикла. Это даст вам ответ. –

ответ

0

Это будет не посещать все индексы массива, потому что индексы массива начинаются с 0, а не 1. В эр слова, первый элемент 2D массива будет матрица смежности [0] [0] поэтому вы должны начать оба ваших итерации от 0.

Если массив имеет длину 5, наибольший индекс будет поэтому будь четыре, будьте осторожны, как далеко вы переходите.

Например, если вы сделали:

for (int i = 1; i <= number_of_nodes; i++) 
    for (int j = 1; j <= number_of_nodes; j++) 
     adjacencyMatrix[i][j] = adjacency_matrix[i][j]; 

Тогда было бы посетить:

adjacencyMatrix[1][1]; 
adjacencyMatrix[1][2]; 
adjacencyMatrix[2][1]; 
adjacencyMatrix[2][2]; 

etc... 

Если вы сделали:

for (int i = 1; i <= number_of_nodes; i++) 
     adjacencyMatrix[i][i] = adjacency_matrix[i][i]; 

Тогда было бы посетить:

adjacencyMatrix[1][1]; 
adjacencyMatrix[2][2]; 
adjacencyMatrix[3][3]; 
adjacencyMatrix[4][4]; 
+0

Пожалуйста, не поддерживайте людей, которые не прикладывают никаких усилий для решения своей «проблемы», – Prasad

-2
for (int i = 0; i < number_of_nodes; i++) 
    for (int j = 0; j < number_of_nodes; j++) 
     adjacencyMatrix[i][j] = adjacency_matrix[i][j]; 
+1

Пожалуйста, не поддерживайте людей, которые не прикладывают никаких усилий для решения своей «проблемы». – sinclair

+0

Я просто хочу ему помочь. –

Смежные вопросы