前提・実現したいこと
注文を受け(コマンドライン引数で受ける)、会計額を表示するプログラムを作りたいです。
(要件)
・商品は以下の五種類とする。
消しゴム :320円
鉛筆 :350円
定規:370円
のり :400円
ハサミ :300円
・「文房具名」「個数」を注文情報として、これをコマンドライン引数で受ける
・合計金額が1000円以上である場合は2割引きをする。
・消費税は8%とし、小数点以下で切り捨てで会計学を算出する。
発生している問題・エラーメッセージ
以下のようにプログラムを書きました。受け取る文房具名が一つの時は、しっかりと値段表記されます。ですが、文房具名が二つ以上の時は正常に計算がされません。原因として、一つの値(文房具名*個数)を受け取っても、次の値を受け取るとtotalPriceが上書きされていると予想しました。上書き処理をしないためにはどのように対処すればよいのでしょうか?
エラーメッセージ
コンバイルできているためなし
JAVA
ソースコード
class CalcThingSum { public static void main (String[] args) { int thing= 0 ; int sum = 0 ; int totalPrice = 0 ; double tax=1.08; for( int i=0 ; i<args.length ; i+=2 ){ if( args[i].equals("消しゴム")){ thing= 320 ; }else if( args[i].equals("鉛筆")){ thing = 350 ; }else if( args[i].equals("定規")){ thing= 370 ; }else if( args[i].equals("のり")){ thing= 400 ; }else{ thing= 300 ; } totalPrice = thing* Integer.parseInt(args[i+1]) ; } if(totalPrice>=1000){ sum=totalPrice- (int)(totalPrice*0.2); } sum =(int)(totalPrice*tax); System.out.println( "合計金額は" + sum + "円です。" ) ; }
試したこと
文房具名を5つに分け(thing~thing5という風に)そしてそれらの値をまとめて加える処理をしましたが、正しい計算結果が得られませんでした。
例
thing* Integer.parseInt(args[i+1])+thing* Integer.parseInt(args[i+1])...
回答4件
あなたの回答
tips
プレビュー