2013-03-17 4 views
0
int[] tall = new int[28123]; 

for (int j = 1;j <= 28123; j++){ 
    int x = 0; 
    tall[x] = j; 
    x++; 
} 

Что не так с этим кодом? Если не этот код сделать следующее:Добавление значений в массив в java

  1. Создайте массив с именем высотой с размером 28123.
  2. индекс Make 0 = 1, индекс 1 = 2 и так далее.

ответ

5

Нет, вы повторно инициализируете x в каждом цикле. Изменить на:

int[] tall = new int[28123]; 
int x = 0; 

for (int j = 1;j<=28123;j++){ 
    tall[x] = j; 
    x++; 
} 

Или, еще лучше (с x всегда равна j-1):

int[] tall = new int[28123]; 

for (int j = 1;j<=28123;j++){ 
    tall[j-1] = j; 
} 
0

Вы всегда установить x в 0 перед изменением значения массива.

Вы можете использовать:

int[] tall = new int[28123]; 

for (int j = 0;j<28123;j++){ 
    // Or whatever value you want to set. 
    tall[j] = j + 1; 
} 

Или просто удалить инициализацию х (int x=0) до того, как цикл.

0

Вы всегда вставляете значения по индексу 0. Другие места в массиве никогда не заполняются значениями.

Вы должны, вероятно, это:

for (int j = 1; j <= 28123; j++) { 
    tall[j-1] = j; 
} 
0

положить х = 0 вне для цикла, что является проблемой

2

Я предлагаю вам пройти через код в ваш отладчик, как отладки программ является то, что она для.

Что бы я ожидал, вы увидите, что каждый раз, когда устанавливаются петли кода int x = 0;.

2

У вас нет ни одного, но и много ошибок. Это должно быть:

int[] tall = new int[28123]; 

for (int j=0;j<28123;j++){ 
    tall[j] = j+1; 
} 

Ваш код помещает 0 во все позиции массива.

Morover, это вызовет исключение, поскольку последний индекс массива - 28123-1 (массивы в Java начинаются с 0!).

0

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

int[] Tall = new int[28123]; 
    for(int i = 0; i<Tall.length ; i++){ 
    Tall[i]= i+1; 
    } 
    System.out.print(Arrays.toString(Tall)); 

"Arrays.toString (INT [])" метод возвращает строковое представление содержимого указанного массива Int. Кроме того, чтобы использовать его, вы должны будете использовать:

import java.util.Arrays 

выход будет выглядеть следующим образом:

[1,2,3,4,5,6,7,8,9,10,..............,28122,28123] 

Я надеюсь, что это помогает.

0
  • Первая строка: массив создан.
  • Третий цикл линии от j = 1 до j = 28123
  • В четвертой строке вы указываете переменную x значение (0) каждый раз при обращении к циклу.
  • Пятая линия вы поставите значение J в индексе 0.
  • Шестая линия вы приращение к значению х на 1. (но это будет сброшен в 0 в строке 4)
0
public class Array { 
    static int a[] = new int[101]; 
    int counter = 0; 
    public int add(int num) { 
     if (num <= 100) { 
      Array.a[this.counter] = num; 
      System.out.println(a[this.counter]); 
      this.counter++; 

      return add(num + 1); 
     } 
     return 0; 
    } 

    public static void main(String[] args) { 
     Array c = new Array(); 
     c.add(1); 
    } 
} 
Смежные вопросы