2

このプログラムは、ユーザーに請求書を要求し、次に支払った金額を尋ね、変更を計算して出力することになっています。私の問題は、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;
           }
       }
    }
4

2 に答える 2