私はjavaを使い慣れていないので、基本的にユーザーの入力を求めて平均を返す単純なプログラムを作成しようとしています。追加しようとすると、私はjava.lang.NullPointerException
を得続けます。どうしてこれなの?これはこれまでのコードです。2つの数字を追加するときにnullPointerExceptionが発生する
import java.io.*;
class Numbers {
public static void main(String[] args) {
System.out.println("Hello USER! This is TRON, state the number of NUMBERS you wish to enter and I will return the Average..."); // Display the string.
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
Integer loopnum = null;
Integer i = null;
Long num = null;
Long sum = null;
Long avg = null;
try {
loopnum = Integer.parseInt(br.readLine());
}
catch(IOException e){
System.out.println("Error!");
System.exit(1);
}
System.out.println("OK now enter your numbers.");
for (i=1;i<=loopnum; i++) {
try {
System.out.println("Enter number "+i+":");
num = Long.parseLong(br.readLine());
sum += num;
}
catch(IOException e){
System.out.println("Error!");
System.exit(1);
}
}
avg = sum/loopnum;
System.out.println("TRON here, Your average is: " + avg);
}
}
プリミティブを長く使用する方がさらに優れています。また、右から左への評価でもNPEが発生します。 – Thilo
nullにsumを加算しようとしていないので、null参照でlongValueを呼び出しています。 –