OK、パスカル三角形を再作成するクラスが必要です。BlueJ を使用していますが、配列が相互にアクセスできません。コードは次のとおりです。
public class PascalTriangle {
private int currentLineNumber;
private int[] previousLineArray;
private int[] nextLineArray;
public void firstLine()
{
currentLineNumber = 1;
System.out.println("1");
}
public void nextLine()
{
if (currentLineNumber == 1) {
int [] previousLineArray = new int [(currentLineNumber+1)];
previousLineArray[0] = 1;
previousLineArray[1] = 1;
System.out.println("1 1");
currentLineNumber = 2;
}
else if(currentLineNumber >= 2) {
for (int lineCount = currentLineNumber; lineCount <= currentLineNumber; lineCount++) {
int [] nextLineArray = new int [(lineCount+1)];
nextLineArray[0] = 1;
System.out.print(nextLineArray[0] + " ");
for (int nextLineCount = 1; nextLineCount < lineCount; nextLineCount++) {
// The next line is the line with the NullPointerException
nextLineArray[(nextLineCount)] = (previousLineArray[(nextLineCount-1)
+ previousLineArray[(nextLineCount)]]);
System.out.print(nextLineArray[(nextLineCount)] + " ");
}
nextLineArray[(lineCount)] = 1;
System.out.print(nextLineArray[(lineCount)] + "\n");
previousLineArray = nextLineArray;
}
currentLineNumber = currentLineNumber+1;
}
}
}
クラスはコンパイルされますが、3 行目に到達すると1 2 1
、その行がハイリストに表示java.lang.NullPointerException
されます。メソッドが初めて呼び出されたときに設定された previousLineArray から nextLineArray が情報を取得するのはなぜですか?PascalTriangle.nextLine(PascalTriangle.java:29)
nextLineArray[(nextLineCount)] = (previousLineArray[(nextLineCount-1)
nextLine()
どんな助けでも大歓迎です:)ありがとう。