以下のコードの 19 行目でヌル ポインター例外が発生しますseq[index].value = lo;
。シーケンスクラスには整数型の値フィールドがありますが、問題は seq インスタンスの配列へのアクセスだと思います。
public class ImprovedFibonacci {
class Sequence{
int value = 0;
boolean isEven = false;
}
public static void main(String[] args){
final int MAX_LOOP = 20;
int lo = 1;
int hi = 1;
int i = 0;
String mark = "-";
int index = 0;
ImprovedFibonacci.Sequence[] seq = new ImprovedFibonacci.Sequence[MAX_LOOP];
seq[index].value = lo;
System.out.println("Fibonacci seq 1 : " + lo);
System.out.println("Sequence class index: "+index+"value: "+seq[index].value);
for(i=MAX_LOOP;i>=1;i--) {
hi = hi + lo;
lo = hi - lo;
index++;
if(hi % 2 == 0){
mark = "-";
seq[index].isEven = true;
}else{
mark = "";
}
System.out.println(i + " : " + hi + mark);
seq[index].value = hi;
System.out.println("Sequence class index: "+index+"value: "+seq[index].value+"IsEven: "+seq[index].isEven);
}
}
}