2016-11-03 2 views
0

私はputArray()とsortArray()メソッドを呼び出すときにnullpointerexceptionを取得しています。 getArray()メソッドは正常に動作します。 getArray()メソッド内で配列を出力すると、それは動作しています。しかし、私はputArray()メソッドで印刷するときにnullポインタの例外を取得します。私はそれを考え出すのに多くの時間を費やしました。このコードを書くための他のよりよい方法を私に提案します。 ありがとうございます。java nullポインタ例外 - 前の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 

このコードでは2つの編曲:変数があります。あなたは方法)のgetArray(ローカル変数を初期化している、あなたはputArray(中クラスレベルARR配列変数を使用している)方法

関連する問題