2016-04-07 5 views
0

Что такое моя консоль, дающая мне проблемы в основном, продолжает давать мне ошибку nullexception в моей пустоте в цикле for. почему это происходит? может быть, потому что в моем аргументе myArray не собирается создаватьIntegers? я не могу показать мой массив в основнойКак взять массив и вывести свой printArray в начало

public class DimentionalArray { 

    int[] createIntegers(int size_of_array) 
    { 
     //******* FILL IN CODE ********* 
     // Your code will create an array of ints as large as specified in size_of_array 
     // Fill the array in with the values: 0, 100, 200, 300, .... 
     // Return the array that you just created 
     int[] numarray = new int[size_of_array]; 
     int mutilply = 100; 
     for(int i =0; i<size_of_array; i++) 
     { 
      System.out.println(numarray[i]); 
     } 
     return numarray; 

    } 
    void printArray(int[] myArray) 
    { 
     //******* FILL IN CODE ********* 
     // Print out your array with one number per line. Get the size of the 
     // array from the "myArray" parameter (no hard coding the size) 

     for(int i = 0; i<myArray.length; i++) // NULL EXCEPTION ON THIS LINE WHY?? 
     { 
      System.out.println(myArray[i]); 
     } 


    } 

    public static void main(String[] args) { 
     Scanner keyboard = new Scanner(System.in); 

     System.out.println("Enter size of array to create: "); 
     int num = keyboard.nextInt(); 

     //******* FILL IN CODE ********* 
     // Construct an instance of the OneDimensionalArrays class 
     // Using this object instance, call createIntegers to create 
     // an array of integers. Don't forget to save the results 
     // Then call the printArray method to print out the contents 
     // of your array. 
     DimentionalArray output = new DimentionalArray(); 
     output.createIntegers(num); 
     output.printArray(myArray); 


    } 
+1

Я не вижу, где аргумент myArray в вызове main() был объявлен или выделен. – paisanco

ответ

0

Во-первых, ваш метод createIntegers() фактически не заполнять массив. Это просто распечатывает элементы в массиве - все они будут равны нулю. Вам необходимо изменить линию System.out.println(numarray[i]);, чтобы установить numarray[i] соответствующим образом.

Во-вторых, ваша программа даже не будет скомпилирована, поскольку в main() у вас нет myArray, объявленного где угодно. И вы ничего не делаете с возвращаемым значением звонка до output.createIntegers(num). Вам необходимо объявить myArray и присвоить его тому, что возвращает output.createIntegers(num).

0

Программа создала динамический массив под названием «namarray» в методе создания массива, в памяти нет массива с именем «myArray», поэтому output.printArray (myArray), который вызывает «myArray» по ссылке, вызывает несуществующее место. Одним из возможных решений для исправления является изменение output.printArray (myArray); to output.printArray (namarray); Надеюсь, это сработает! Удачи! Кроме того, о нулевом исключении: What is a NullPointerException, and how do I fix it?