0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

自動販売機に投入された硬貨の合計金額を表示するプログラム

Posted at
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;の下に書いていたら上記のように出力された。変更後のほうが警告文が先に来ていて投入金額もすべて足されて出力されてすっきりしている。

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?