2016-11-03 20 views
0

當我調用putArray()和sortArray()方法時,我得到了nullpointerexception。 getArray()方法正常工作。當我在getArray()方法中打印數組時,它正在工作。但是,當我在putArray()方法中打印時,我得到了空指針異常。我花了很多時間搞清楚它。好意幫助我解決這個問題。也建議我用其他更好的方法來編寫這段代碼。 謝謝。java空指針異常 - 我讀過以前的aswers,但很難找出解決方案。請幫助我

import java.util.Scanner; 
public class BubbleSort { 
    int num; 
    int[] arr; 
    public void getArray() { 
     System.out.print("Enter the total numberr of elements in the Array : "); 
     Scanner sc = new Scanner(System.in); 
     num = sc.nextInt(); 
     int arr[] = new int[num]; 
     System.out.print("Enter " + num + " Elements : "); 
     for (int i = 0; i < num; i++) { 
      arr[i] = sc.nextInt(); 
     } 
    } 
    public void putArray() { 
     System.out.print("The Array is: "); 
     for (int i = 0; i < num; i++) { 
      System.out.println(arr[i] + " "); 
     } 
    } 
    public void sortArray() { 
     for (int i = 0; i < num; i++) { 
      boolean flag = false; 
      for (int j = 0; j < num - i - 1; j++) { 
       if (arr[j] > arr[j + 1]) { 
        arr[j] = arr[j] + arr[j + 1]; 
        arr[j + 1] = arr[j] - arr[j + 1]; 
        arr[j] = arr[j] - arr[j + 1]; 
        flag = true; 
       } 
      } 
      if (!flag) { 
       break; 
      } 
     } 
    } 
    public static void main(String[] args) { 
     BubbleSort b = new BubbleSort(); 
     b.getArray(); 
     b.putArray(); 
     b.sortArray(); 
     b.putArray(); 
    } 
} 

回答

0

您正在使用putArray()方法和ARR未初始化ARR變量。

arr = new int[num]; // Fix: Make this change in getArray method at line#9 

有在這兩個代碼ARR變量。你已經在的getArray()方法,並且使用一流水平改編數組變量putArray()方法

初始化局部變量
相關問題