2016-04-07 10 views
0

sürümüne aktarırsanız, ana sayfamda sorun yaşamaya devam eden konsolum, for döngüsündeki boşluğumda bir nullexception hatası verir. neden null gidiyor ??? , argümanımda myArray, Bağımsızlar oluşturmayacağı için olabilir mi? i anaBir dizi nasıl alınır ve printArray öğemi ana

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

Ana() öğesindeki myArray argümanının nerede bildirildiğini veya tahsis edildiğini anlamıyorum. – paisanco

cevap

0

İlk benim dizisi görüntülemek olamaz, senin createIntegers() yöntem aslında dizide doldurmak değildir. Sadece dizinin içindeki elemanların basılması - ki hepsi sıfır olacak. numarray[i]'u uygun şekilde ayarlamak için System.out.println(numarray[i]); satırını değiştirmeniz gerekir.

İkincisi, programınız, main() adresinde myArray hiçbir yerde bildirilmediğinden dolayı olduğu gibi derlemeyecektir. Ve aramanın dönüş değeri output.createIntegers(num) ile hiçbir şey yapmıyorsunuz. myArray bildirmeniz ve output.createIntegers(num) öğesinin geri dönüşüne atamanız gerekir.

0

Program, yalnızca oluşturma dizisi yönteminde "namarray" adında bir dinamik dizi oluşturdu, bellekte "myArray" adı verilen bir dizi yok, bu nedenle "myArray" çağrısında bulunan output.printArray (myArray) referans olarak arıyor varolmayan bir yer. Bunu düzeltmek için olası bir çözüm, output.printArray (myArray) değiştirmektir; output.printArray (namarray); Umut işe yarıyor! İyi şanslar! Ayrıca, null özel durumu hakkında: What is a NullPointerException, and how do I fix it?

İlgili konular