2013-08-31 2 views
0
class ArrayPrint { 

    static void arrayPrinter(int[] x) { 
     for (int i = 0; i < x.length; i++) { 
      System.out.println(x[i]); 
     } 
    } 

    public static void main(String... S) { 

     int[] x = {3, 3, 4, 2, 7}; 
     x = new int[5]; 
     arrayPrinter(x); 
     System.out.println(x.length); 
    } 
} 

Ожидаемый массив не печатает, вместо этого он печатает 0 0 0 0 0. Что может быть ошибкой?Этот код печатает массив с 0 0 0 0 0 5, а не ожидаемый массив

+7

Как вы думаете, это назначение - 'x = new int [5];' делает? –

+0

Вы назначили пустой массив X, а затем распечатали его. Массивы инициализируются до нуля. –

+0

Не массивы инициализируются нулями, переменными 'int' являются. –

ответ

4
int[] x = {3,3,4,2,7}; 
x = new int[5]; // re-initializing 

Вы повторно инициализируете массив. По умолчанию значения элементов в новом массиве все будет 0.

Просто удалите

x = new int[5]; 

Эта запись

int[] x = {3,3,4,2,7}; 

Создает целочисленный массив размером 5 со значениями элементов вы указали.

+0

Спасибо за самый быстрый ответ. Спасибо всем остальным респондентам как хорошо. – victorh

+0

Вы Добро пожаловать. –

1
x = new int[5]; 

Повторно инициализирует ваш массив ко всем нулям. Удалите эту строку.

1

Вы повторно инициализированы x массива с утверждением

x = new int[5]; 

По умолчанию значения массива будет 0.That причины вы получаете выход. Так удалить его

public static void main(String...S) {  
     int[] x = {3,3,4,2,7}; 
     arrayPrinter(x); 
     System.out.println(x.length); 
    } 
1

Ну, вы повторно инициализировать массив 0, 0, 0,0.

Когда вы пишете int [] x = {3,3,4,2,7}; инициализирует массив с заданными значениями, а в следующей строке перезаписать его с «новым» междунаром [5], поэтому пять 0 '

1

вы повторно initializeing вашего массива, вы должны использовать либо

int[]x = new int[5]; 
x[0] = 3; 
x[1] = 3; 
// and the rest of your array 

ИЛИ

int[]x = {3,3,...}; 

, то вы можете напечатать массив,

попробовать

import java.util.*; 
// ... some code 
System.out.println(Arrays.toString(x)); 
Смежные вопросы