본문 바로가기
  • 마침표 보다 쉼표를 나타내자
프로그래밍/JAVA

액수 입력 받아 금액 변환 - 명품자바 3장 6번

by Y코더 2022. 12. 8.
728x90

이 문제를 풀때 여러모로 생각을 많이 했다.

 

명품 자바 3장 6번 문제이다.

import java.util.Scanner;
public class Q6 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		//현금 변수 선언
		int sum = 0;
		
		//배열 선언
		int [] unit = {50000, 10000, 1000, 500, 100, 50, 10, 1};
		
		//사용자에게 값을 받기
		System.out.print("금액을 입력하시오>>");
		int user1 = sc.nextInt();
		sum += user1;
		
		//받은 값을 화폐로 변환하며 출력하기
		for(int i=0; i<8; i++) {										//저장된 배열을 각각 불러옵니다
			switch(unit[i]) {
			
			case 50000 :
				if(sum>=unit[i]) {
					int user2 = user1 / unit[i];
					sum = user1 - unit[i]*user2;
					System.out.println(unit[i]+"원 짜리 : "+user2+"개");
					break;
				}else {
					break;
				}
			
			case 10000 :
				if(sum>=unit[i]) {
					int user2 = sum / unit[i];
					sum = sum - unit[i]*user2;
					System.out.println(unit[i]+"원 짜리 : "+user2+"개");
					break;
				}else {
					break;
				}
				
			case 1000 :
				if(sum>=unit[i]) {
					int user2 = sum / unit[i];
					sum = sum - unit[i]*user2;
					System.out.println(unit[i]+"원 짜리 : "+user2+"개");
					break;
				}else {
					break;
				}
				
			case 500 :
				if(sum>=unit[i]) {
					int user2 = sum / unit[i];
					sum = sum - unit[i]*user2;
					System.out.println(unit[i]+"원 짜리 : "+user2+"개");
					break;
				}else {
					break;
				}
				
			case 100 :
				if(sum>=unit[i]) {
					int user2 = sum / unit[i];
					sum = sum - unit[i]*user2;
					System.out.println(unit[i]+"원 짜리 : "+user2+"개");
					break;
				}else {
					break;
				}
				
			case 50 :
				if(sum>=unit[i]) {
					int user2 = sum / unit[i];
					sum = sum - unit[i]*user2;
					System.out.println(unit[i]+"원 짜리 : "+user2+"개");
					break;
				}else {
					break;
				}
				
			case 10 :
				if(sum>=unit[i]) {
					int user2 = sum / unit[i];
					sum = sum - unit[i]*user2;
					System.out.println(unit[i]+"원 짜리 : "+user2+"개");
					break;
				}else {
					break;
				}
				
			case 1 :
				if(sum>=unit[i]) {
					int user2 = sum / unit[i];
					sum = sum - unit[i]*user2;
					System.out.println(unit[i]+"원 짜리 : "+user2+"개");
					break;
				}else {
					break;
				}
				
			}
		}
		sc.close();
	}
}

답안에 변환 되지 않은 돈은 출력되지 않았다.

그것을 보아 방법이 없을까 싶어

 

실제 자판기를 떠올렸다.

 

동전이 가득 들어있는 상자, 그리고 실제 분리 되는 기계의 모습을

흡사 스위치 문이 내 머리 속에 번뜩 떠올렸다.

 

나중에 내가 공부수준이 올라가서 이 글을 본다면

어떤 생각을 하게 될지 기대가 된다.

728x90