1

プロジェクトの通貨値を格納するための配列と、現在の合計を保持するための double 変数を使用しています。コードをループで実行すると、ユーザー入力は配列に格納されず、実行中の合計には何も追加されません。ユーザーが-1を入力すると、ループを破って税金などを計算することになり、0が入力されると、最後の値が配列から削除されます。何をしても、これらの値を配列に入れることも、現在の合計を機能させることもできません。私が間違っているのはばかげていると確信していますが、それを見つけることはできません。

for(i = 0; i < priceArray.length; i++) {
    System.out.print("\nEnter the price of the item...");
    userInput = input.nextDouble();
    if(userInput == -1) { // This will break the user out of the loop.
        break;
    }
    else if(userInput == 0.0) {
        System.out.println("You entered a zero, removing last price of $" + priceArray[i] + ".");
        i--;
        runningTotal =- priceArray[i];
    }
    else if(userInput > 0.0 && userInput < 2999.99) {
        priceArray[i] = userInput;
        priceArray[i] += runningTotal;
        userInput += runningTotal;
        System.out.println("You entered $" + userInput + ", total is $" + runningTotal + ".");
    }
    else {
        i--;
        System.out.println("Please enter a valid value under $2999.99.");
    }// End if.
};// End for
4

2 に答える 2

1

ここでいくつかのことが間違っています

1) 実行中の合計を計算するとき、間違って計算します (まったく計算しません)。

priceArray[i] = userInput;
priceArray[i] += runningTotal;
userInput += runningTotal;

これは次のようになります。

priceArray[i] = userInput; /* Save the price */
runningTotal += userInput; /* Increment the total */

これで、runningTotal がインクリメントされ、価格が正しく保存されました。

2)何かを削除する(0を入力する)ときも、間違っています。次の空の値を出力します。これはゼロになり、減算する代わりに否定します。

i--; /* Step back one step */
System.out.println("You entered a zero, removing last price of $" + priceArray[i] + ".");
runningTotal -= priceArray[i];
i--; /* The for-loop will increment i for us, so we must subtract one extra time */
于 2012-11-26T21:18:20.900 に答える
0

値を削除しようとすると、現在の合計が壊れます。 runningTotal =- priceArray[i];削除しようとしている値の負の値を設定します。-=の代わりに使用する必要があり=-ます。

値を追加しようとすると、実行中の合計も台無しになります。

priceArray[i] = userInput;
priceArray[i] += runningTotal;
userInput += runningTotal;

これらの行で何が起こっていると思うかわかりません。指定されたインデックスの配列の値を、入力されたものに設定します。これは素晴らしいことです。次に、runningTotal を追加して値をオーバーライドしますが、これは必要なものではありません。次に、 runningTotal を追加して入力値を上書きしますが、これも必要ではありません。配列内に値を設定したい場合は、その値を runningTotal に追加します。それだけです。

于 2012-11-26T21:18:49.933 に答える