このプログラムは、ユーザーに請求書を要求し、次に支払った金額を尋ね、変更を計算して出力することになっています。私の問題は、2 番目の for ループの変化の計算にあるため、2 番目の部分は省略しました。発生するエラーはjava.lang.NullPointerException
、ユーザーの入力に応じて、さまざまな 10 セント硬貨、4 セント硬貨、ニッケル ラインなどで発生します。私は問題を調べましたが、人々はプログラムが値を取得しようとしていると言いますが、null
更新しているため方法がわかりません。
よろしくお願いいたします。
Scanner s = new Scanner(System.in);
Double[] Bill = new Double[5];
Double[] Paid = new Double[5];
for (int i = 0; i < 1; i++) {
int j = i + 1;
System.out.print("Enter bill " + j + ": ");
Bill[i] = Double.parseDouble(s.nextLine());
System.out.print("Enter amount paid for bill " + j + ": ");
Paid[i] = Double.parseDouble(s.nextLine())
System.out.println("");
}
Integer[] Dollars = new Integer[5];
Integer[] Quarters = new Integer[5];
Integer[] Dimes = new Integer[5];
Integer[] Nickels = new Integer[5];
Integer[] Pennies = new Integer[5];
for (int i = 0; i < 1; i++){
Double Change = Paid[i] - Bill[i];
while (Change > 0){
if (Change > 1){
Change = Change - 1;
Dollars[i] = Dollars[i] + 1;
}
else if (Change > 0.25){
Change = Change - 0.25;
Quarters[i] = Quarters[i] + 1;
}
else if (Change > .1){
Change = Change - 0.1;
Dimes[i] = Dimes[i] + 1;
}
else if (Change > .05){
Change = Change - 0.05;
Nickels[i] = Nickels[i] + 1;
}
else if (Change > 0){
Change = Change = 0.01;
Pennies[i] = Pennies[i] + 1;
}
}
}