コード ```コマンドライン引数で10 50 100 1000 の数字を任意の数だけ入力し合計を出すプログラムを作っています。 ただし、1 5 が入力された時は 一円玉は使えません。 五円玉は使えません と表示されるようにし、それ以外の数字Xが入力されたときには「Xは硬貨として適切ではありません。」と表示させたいです。 例 1 5 10 100 777 と入力 警告 一円玉は使えません 警告 五円玉は使えません ただ今の金額は110円です 777は硬貨として適切ではありません。 しかし実行してみると 警告 :一円玉は使えません。 警告 :五円玉は使えません。 警告 :110は硬貨として適切ではありません。 ただ今の金額は110円です と表示されます。 改善点、アドバイスなどいただけると幸いです。 分岐構文 制御構文 繰り返し構文 配列まで学習しました。 書いていて気づいたのですが以下のソースコードの System.out.println("警告 :"+money+"は硬貨として適切ではありません。"); のmoneyはおかしいですね。 ただこのmoneyの部分に何を入れてよいのか分かりません。 そもそもswitchを使うのがナンセンスなんでしょうか? ```Java public class aaa13 { public static void main (String[] args){ int coin = args.length; int money = 0; for(int i = 0; i < coin; i++){ switch(Integer.parseInt(args[i])) { case 1: System.out.println("警告 :一円玉は使えません。"); break; case 5: System.out.println("警告 :五円玉は使えません。"); break; case 10: case 50: case 100: case 1000: money += Integer.parseInt(args[i]); break; default: System.out.println("警告 :"+money+"は硬貨として適切ではありません。"); } } System.out.println("ただ今の金額は"+money+"円です"); } }
コマンドライン引数で「1 5 10 100 777 10 10 100」と入力したとき、どのような出力を期待しますか?
警告 一円玉は使えません
警告 五円玉は使えません
ただ今の金額は110円です
777は硬貨として適切ではありません。
ただ今の金額は230円です
でしょうか。
早急な回答ありがとうございます。
警告 :一円玉は使えません。
警告 :五円玉は使えません。
警告 :110は硬貨として適切ではありません。
ただ今の金額は230円です
と表示されました。
コードのマークダウン記法での表記が失敗しているようですので、
https://teratail.com/help/question-tips#questionTips3-5-1
https://teratail.com/questions/238564
あたりを参考にしてソースコードを適切に表示するようにしてください。
あ、すいません訂正します!
> と表示されました。
いえ、今現在結果としてどう表示されるかではなく、質問者さんが「どう表示したいか(=プログラムの仕様)」をお聴きしています。なお、これは回答ではなく、質問自体への質問と指摘です。
コマンドラインに任意の整数を打ち込み10 50 100 1000 の数字のみを足し合計を出したいです
1 5 10 100 777 10 10 100 ならば
警告 :一円玉は使えません。
警告 :五円玉は使えません。
警告 :777は硬貨として適切ではありません。
ただ今の金額は230円です
と表示させたいです。
> コマンドラインに任意の整数を打ち込み10 50 100 1000 の数字のみを足し合計を出したいです
> 1 5 10 100 777 10 10 100 ならば
> 警告 :一円玉は使えません。
> 警告 :五円玉は使えません。
> 警告 :777は硬貨として適切ではありません。
> ただ今の金額は230円です
それですと、質問文中の以下の例と矛盾します。
> 例 1 5 10 100 777 と入力
> 警告 一円玉は使えません
> 警告 五円玉は使えません
> ただ今の金額は110円です
> 777は硬貨として適切ではありません。
質問文中の例は間違いで、最後に合計値として「ただ今の金額はnnn円です」と出力したい、ので合っていますか?
しかしながら最後に合計値として出力するのであれば、「ただ今の金額は...」の"ただ今"はちょっと違うようにも思います。その考え方ですと質問文の当初の例のように、足している途中で出力する必要があるときに「ただ今の金額は...」と出力するのが合っているでしょう。質問者さんがどちらとしたいのかでプログラム(仕様)が変わってきます。どちらも可能ですが、最後に合計を表示する方が当然、簡単です。
分かりづらい例を出してしまい申し訳ございません。。
途中で出力ではなく、最後に合計を表示させたいのです。
日本語がおかしかったです「ただ、今の」という意味ではなく「ただいまの、合計金額は」と最後に表示させたいです。訂正しておきます。
> 日本語がおかしかったです「ただ、今の」という意味ではなく「ただいまの、合計金額は」
受け取り方が微妙ですが、"ただいま"とはその時点の、と言う意味でありますから、最後に一回合計を出力するのであれば、「ただいまの」は余計だと思います。回答は既にいただいてますので、そちらをご覧いただくのが良いと思います。(ちなみに私も同じコードになっていましたので、回答は止めておきます)
回答1件
あなたの回答
tips
プレビュー