Jihan.java
class Jihan{
public static void main (String[] args){
int coin = Integer.parseInt(args[6]); // 7枚の硬貨を投入する
int sumCoin = 0; // 投入金額の合計値
// 1円玉,5円玉,それ以外の値に警告文をあたえる
for (int i = 0 ; i < args.length ; i++){
coin = Integer.parseInt(args[i]);
if ( coin == 1 ){
System.out.println("警告:1円玉は使えません");
}else if( coin == 5 ){
System.out.println("警告:5円玉は使えません");
}else if( coin > 500 ){
System.out.println("警告:" + coin + "は硬貨として適切な値ではありません");
// 10円玉~500円玉の硬貨を足す
}else if( coin == 10 || coin == 50 || coin == 100 || coin == 500 ){
sumCoin += coin;
}
}
System.out.println("ただいまの投入金額は" + sumCoin + "円です");
}
}
(感想)
今回は、タイトルに書いてあるプログラムを作成した。
配列とコマンドライン引数、for文、if elseを使った複合系だ。複数のコマンドライン引数を入力するときの動作を少し忘れていたので、やや時間がかかった。
反省点
1.複数のコマンドライン引数がある場合はfor文を使い、1つずつ取り出してif文の条件にかけていく以下の文を忘れていた
// 1円玉,5円玉,それ以外の値に警告文をあたえる
for (int i = 0 ; i < args.length ; i++){
coin = Integer.parseInt(args[i]);
2.System.out.println()の位置を確認する
変更前
警告:1円玉は使えません
ただいまの投入金額は0円です
警告:5円玉は使えません
ただいまの投入金額は0円です
ただいまの投入金額は10円です
ただいまの投入金額は60円です
ただいまの投入金額は160円です
ただいまの投入金額は660円です
警告:777は硬貨として適切な値ではありません
ただいまの投入金額は660円です
変更後
警告:1円玉は使えません
警告:5円玉は使えません
警告:777は硬貨として適切な値ではありません
ただいまの投入金額は660円です
sumCoin += coin;の下に書いていたら上記のように出力された。変更後のほうが警告文が先に来ていて投入金額もすべて足されて出力されてすっきりしている。