2012-01-02 14 views
3

これは私の割り当てについてですので、私は説明と一般的な回答に感謝します。私は配列がすべてそれを覚えて欲しいです

私はオンライン注文システムのために作らなければならないfor-loopを持っています。 for-loopとorderingはすべて正常に動作しますが、同じアイテムが2回置かれた場合、同じアイテムの前回の注文は忘れられ、最新のものだけが記憶されます。シンプルな配列とfor-loopsを使用する必要がありますので、ソリューション/ヘルプがこの基本レベルのものであれば感謝します。

私のコードは、この(注:以下は、ループの一部がどのように見えるかのほんの一例である - これは完全なプログラムではありません):のようなものに見え、さらにこのループを説明するために

for (int i = 0; i < 3; i++) { //I changed the loop so there's no confusion about 
           //what I am actually asking about. 
    if (order.equalsIgnoreCase(computer) { 
     int price = quantity[i] + itemcode; 
    } 
} 

をある項目が一度だけ注文された場合、ifステートメントは完全に機能します。しかし、ユーザーが例えばコンピュータの注文を1回入力した後、さらに3回注文した後、別のコンピュータを注文すると、出力は新しい注文の前の注文を追加せず、最新の注文のみを記憶します。

これは私の研究のためのものですが、これについてはもう一度提案していただきたいと思いますが、直接的な解決策ではなく説明をお読みいただきたいと思います。

これが明確でない場合は質問してください。

+1

「忘れる前の注文 "? –

+0

私は 'blah == blah'の部分を理解しているとは思わない。ここでは正確に何をしようとしていますか?もっとコードを投稿してください。 –

+0

Daveは、たとえば、ユーザーが最初に4台のコンピュータを注文した後、10台のコンピュータを注文すると、プログラムは14台のコンピュータを計算しませんが、10台のコンピュータ用の後者の注文のみが考慮されます。 –

答えて

1

「忘れる」とは、インクリメントするのではなく、コード内の何かを上書きすることを意味します。あなたのコードを見て、あなたが新しい注文をするときにリセットされる部分を見てください。たとえば、あなたが

quantity[1] = getNumberFromUser("How many apples?");

を行っている場合は、この希望は明らか消去古い値たびに。あなたは、単にリンゴの数をインクリメントしたい場合は、

quantity[1] += getNumberFromUser("How many apples?");

ような何かを別の一般的なアドバイスは、あなたのコードをデバッグするためにprint文を使用することです。そうすれば、実際に何が起こるかを自分で確認することができます。実際のデバッガを使用することを学ぶことも大きな利点になります。

+0

あなたの答えをありがとう、私はそれを試してみましょう。私はそれが私の大学の割り当てと多くの学生がこのウェブサイトを助けに使うので、コード全体を投稿していません。彼らは盗作に非常に厳しく、何も危険を冒すつもりはありません。私はあなたの提案を試してみましょう、そして、あなたがどこに行くのかを教えてあげます。 –

+0

それはまさに私が求めていたものです。ありがとう!かなり基本的ですが、私はプログラミングでの経験がほとんどないので、時々立ち往生できます。 –

+0

私がしなければならなかったことは、 '='を '+ ='に変更することだけでした。すべての経験豊富なプログラマーは、おそらく "ああ、何のことか"と思っているが、プログラミングをしたことのない私のような人にとっては本当に難しいが、今は大学のためにする必要がある。 –

1

あなたが製品の2つ以上typresを持っており、一緒にすべての注文の料金を計算する場合、あなたは以下のコードを試すことができますが,,私はthatsのは非常に簡単だと思う,,

int price=0; 
for (int i = 0; i < 3; i++) { //I changed the loop so there's no confusion about 
           //what I am actually asking about. 
    if (order.equalsIgnoreCase(computer) { 
      price += quantity[i] + itemcode; //use the previous value of price 
    } 
} 

か、他の場合あなたはそれぞれの製品の履歴を別々に持っていたいと思うので、各製品タイプの価格の配列で同じものを試してみる必要があります。 答えが得られない場合は

関連する問題