0

eclipse IDE を使用して Java プログラムをデバッグするにはどうすればよいでしょうか。これをGoogleで検索しましたが、適切な解決策が見つかりません。問題は、入力の読み取り中に null ポインター例外が発生したことです。そのため、プログラムをデバッグしたいと考えています。

これは私のプログラムです...

package p;

import java.io.*;

import java.util.*;

import java.text.*;

import java.math.*;

import java.util.regex.*;

public class Solution {

    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);

           int T = in.nextInt();
           int[][] ar = new int[T][];
           for(int i=0;i<T;i++){
               int n;
               {
                    n = in.nextInt();
               }
           for(int j=0;j<n;j++)
               {
                ar[i][j]=in.nextInt(); /*null pointer exception occurs here*/
               }
           }


        for(int i=0;i<T;i++)
        {   int count=0,i1,k;
            for(int j=1;j<ar[i].length;j++)
            {
                k=ar[i][j];
                for(i1=j-1; i1>=0 && k<ar[i][i1]; i--)
                    ar[i][i1+1]=ar[i][i1];
                ar[i][i1+1]=k;
                count++; 
            }
        System.out.println(count);

        }
    }
}
4

4 に答える 4

1

eclipse を使用したデバッグに関するチュートリアルをご覧ください。

いくつかのブレーク ポイントを設定した後、デバッグ モードに入る必要があります。ブレークポイントは、さまざまな変数などに現在格納されているものを表示できるように、デバッガーを停止させたいコード内のスポットです。

于 2013-09-15T18:25:36.513 に答える
1

あなたは(初期化することによって)列がいくつになるかを決して言いませんar[i][j](したがって、それらの初期化されていないメモリブロックにアクセスするとNullPointerException
、すべてのi行に対してこれを確実に行うことができます
ar[i] = new int[colSize]

こちらのリンクもチェック

于 2013-09-15T18:25:50.170 に答える
0

Scannerの javadoc を確認し、メソッドを使用しhasNext()て、期待どおりの入力があることを確認します。

于 2013-09-15T18:26:10.313 に答える
0

必要な場所にブレークポイントを置き、それを Debug で実行するだけです。プログラムステップに Scanner が含まれているかどうかは関係ありません。スキャナーステートメントに出くわしたとしても、concole 入力で 1 行入力してから入力するだけです。プログラムは継続します。

于 2013-09-15T18:26:44.507 に答える