๐Ÿฅคjava ์ŠคํŒŒ๋ฅดํƒ€ ์žํŒ๊ธฐ

์ฝ”๋“ฑ์–ดยท2024๋…„ 12์›” 2์ผ
1

์‚ฌ์ „์บ ํ”„

๋ชฉ๋ก ๋ณด๊ธฐ
16/19

์š”๊ตฌ์‚ฌํ•ญ

  1. ์‚ฌ์šฉ์ž๊ฐ€ ๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ”๋‰ด๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
    • ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์Œ๋ฃŒ๋ฅผ ์‹คํ–‰์ฐฝ์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
      • ์‚ฌ์ด๋‹ค 1,700์›
      • ์ฝœ๋ผ 1,900์›
      • ์‹ํ˜œ 2,500์›
      • ์†”์˜๋ˆˆ 3,000์›
  2. ์‚ฌ์šฉ์ž๋Š” ์Œ๋ฃŒ๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์‚ฌ์šฉ์ž์—๊ฒŒ ์–ด๋–ค ์Œ๋ฃŒ๋ฅผ ์‚ด ๊ฒƒ์ธ์ง€๋ฅผ ์ž…๋ ฅ๋ฐ›์Šต๋‹ˆ๋‹ค.
      • ex) ์‚ฌ์ด๋‹ค
      • ๋ชฉ๋ก์— ์—†๋Š” ์Œ๋ฃŒ์ผ ๊ฒฝ์šฐ ์‹คํ–‰์ด ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.
  3. ์‚ฌ์šฉ์ž๋Š” ์ง€๋ถˆํ•  ๊ธˆ์•ก์„ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์‚ฌ์šฉ์ž์—๊ฒŒ ์–ผ๋งˆ๋ฅผ ๋„ฃ์„์ง€ ์ž…๋ ฅ๋ฐ›์Šต๋‹ˆ๋‹ค.
      • ex) 2000
      • ์ง€๋ถˆํ•˜๋Š” ๊ธˆ์•ก์ด ์„ ํƒํ•œ ์Œ๋ฃŒ์˜ ๋น„์šฉ๋ณด๋‹ค ์ž‘๋‹ค๋ฉด โ€œ๋ˆ์ด ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค.โ€ ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค
  1. ์‚ฌ์šฉ์ž๋Š” ์Œ๋ฃŒ๋ฅผ ๊ตฌ๋งคํ•˜๊ณ  ๋‚จ์€ ์ž”์•ก์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์ž”์•ก์„ ํ™”๋ฉด์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
      • ex) ์ž…๋ ฅํ•œ ๋ˆ 2000์›, ์‚ฌ์ด๋‹ค 1700์› ์ผ๋•Œ 300์›์„ ์ž”์•ก์œผ๋กœ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ ๊ณผ์ •

1๋ฒˆ์—์„œ ์‚ฌ์ด๋‹ค 1700์›๊ณผ ๊ฐ™์ด ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด๊ธฐ ์œ„ํ•ด
java์—์„œ map์ž๋ฃŒํ˜•์„ ์ด์šฉํ•˜๋ฉด ์ข‹๊ฒ ๋‹ค ๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.

Map<String, Integer> drink = new HashMap<>(); //์„ ์–ธ
        drink.put("์‚ฌ์ด๋‹ค",1700); //๋ฐ์ดํ„ฐ ์‚ฝ์ž…
        drink.put("์ฝœ๋ผ",1900);
        drink.put("์‹ํ˜œ",2500);
        drink.put("์†”์˜๋ˆˆ",3000);
        
for(String key: drink.keySet()){ //์ถœ๋ ฅ
	System.out.println("์Œ๋ฃŒ์ˆ˜: " + key + ", ๊ฐ€๊ฒฉ: " + drink.get(key));
}

2๋ฒˆ์—์„œ๋Š” ์ž…๋ ฅ์„ ๋ฐ›์•„์•ผ ํ•˜๋‹ˆ๊นŒ Scanner๋ฅผ ์„ ์–ธํ•˜์—ฌ key ๊ฐ’์ธ ์Œ๋ฃŒ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›๊ฒŒ ํ•˜๋ฉด ์ข‹๊ฒ ๋‹ค ๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.

Scanner sc = new Scanner(System.in);
System.out.println("๊ตฌ๋งคํ•  ์Œ๋ฃŒ์ˆ˜์˜ ์ด๋ฆ„์„ ์ ์–ด์ฃผ์„ธ์š”.");
String choice = sc.nextLine();

๋˜ํ•œ ๋ชฉ๋ก์— ์—†๋Š” ์Œ๋ฃŒ๋ฅผ ๊ณ ๋ฅผ ์‹œ ์ข…๋ฃŒ๊ฐ€ ๋œ๋‹ค๋Š” ๊ฒƒ์„ ๋ณด๊ณ 

  if (!drink.containsKey(choice)) {
  	System.out.println("์„ ํƒํ•œ ์Œ๋ฃŒ๋Š” ๋ชฉ๋ก์— ์—†์Šต๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.");
    return;
}

์ž…๋ ฅ๋ฐ›์€ ๊ฐ’์„ ์กฐ๊ฑด๋ฌธ์— ๋„ฃ์–ด ๊ฑฐ์ง“์ด ๋  ์‹œ return์„ ํ•˜๊ฒŒํ•˜์˜€๋‹ค.


3๋ฒˆ๋„ ์ง€๋ถˆํ•  ๊ธˆ์•ก์„ ์ž…๋ ฅ ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก Scanner๋ฅผ ์„ ์–ธํ•˜์˜€๊ณ 

int price = drink.get(choice);
System.out.println(choice + "์˜ ๊ฐ€๊ฒฉ์€ " + price+"์› ์ž…๋‹ˆ๋‹ค.");
System.out.println("๊ธˆ์•ก์„ ํˆฌ์ž…ํ•ด์ฃผ์„ธ์š”.");
int payment = sc.nextInt();
sc.nextLine();
System.out.println("ํˆฌ์ž…๋œ ๊ธˆ์•ก: " + payment + "์›");

์ž…๋ ฅํ•œ ๊ธˆ์•ก๊ณผ ์Œ๋ฃŒ ๊ธˆ์•ก์„ ๋น„๊ตํ•˜์—ฌ ๊ธˆ์•ก์ด ๋ถ€์กฑํ•˜๋ฉด ์ž”์•ก์„ ํ‘œ์‹œํ•˜๊ธฐ ์œ„ํ•˜์—ฌ

 if(payment < price){
 	int deficit = price - payment;
    System.out.println("์ž”์•ก์ด ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค. ์ถ”๊ฐ€๋กœ " + deficit + "์›์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.");
    System.out.println("๊ธˆ์•ก์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜ํ™˜ ๊ธˆ์•ก: " + payment + "์›");
    System.out.println("์ฒ˜์Œ์œผ๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค.");
    break;
}

์ด๋ ‡๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ๋‹ค.
ํ•˜์ง€๋งŒ ์—ฌ๊ธฐ์„œ ๊ณ ๋ คํ•  ์‚ฌํ•ญ์€ ๊ธˆ์•ก์ด ๋ถ€์กฑํ•  ๋•Œ, ์ถ”๊ฐ€๋กœ ๊ธˆ์•ก์„ ์ง€๋ถˆํ•˜์—ฌ ๊ณ„์‚ฐ์„ ๋” ํ• ์ง€,
๊ฒฐ์ œ๋ฅผ ์ทจ์†Œํ• ์ง€์— ๋Œ€ํ•œ ๊ณ ๋ ค๋Š” ์ผ๋‹จ ์•Š์•˜๋‹ค.
๋Œ€์‹  ์ž”์•ก์ด ๋ถ€์กฑํ•  ์‹œ ์ž…๋ ฅ๋œ ๊ธˆ์•ก์„ ๋‹ค์‹œ ๋ฐ˜ํ™˜ ํ•˜๋Š” ์•Œ๋ฆผ์„ ๋„ฃ์—ˆ๋‹ค.


4๋ฒˆ์€ ์ž”์•ก์„ ํ‘œ์‹œํ•˜๊ธฐ ์œ„ํ•ด ์ž…๋ ฅ๋œ ๊ธˆ์•ก์—์„œ ์„ ํƒ๋œ ์Œ๋ฃŒ์˜ ๊ฐ€๊ฒฉ์„ ๋บ€ ๊ฐ€๊ฒฉ์„ ํ‘œ์‹œํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์˜€๋‹ค.

int change = payment - price;
System.out.println("๊ตฌ๋งค ์™„๋ฃŒ! ๋‚จ์€ ์ž”์•ก: " + change +"์›");
System.out.println("๊ตฌ๋งคํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.");

๊ทธ ์™ธ ์ƒ๊ฐ๋“ค

๊ทธ ๋‹ค์Œ์œผ๋กœ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ƒ๊ฐํ•ด๋ณด์•˜๋‹ค.
1. ํ”„๋กœ๊ทธ๋žจ์„ ๊ณ„์† ์‹คํ–‰ ์‹œํ‚ค๊ณ  ์žˆ์œผ๋ ค๋ฉด?
2. ์‚ฌ์šฉ์ž๊ฐ€ ๋ฉ”๋‰ด๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ํ‘œ์‹œํ•˜์ง€๋งŒ, ๋งŒ์•ฝ์— ์ด๋ฏธ ๋ฉ”๋‰ด๋ฅผ ์•Œ๊ณ  ์žˆ๋Š” ์‚ฌ์šฉ์ž๋Š”
๋ฉ”๋‰ด๋ฅผ ๋ณด์ง€์•Š๊ณ  ๋ฐ”๋กœ ๊ตฌ์ž…์„ ํ• ์ˆ˜ ์žˆ๋‹ค๋ฉด?
3. ๋ฉ”๋‰ด๋ฅผ ์„ ํƒํ•  ๋•Œ, ๊ธˆ์•ก์„ ์ž…๋ ฅํ•  ๋•Œ, ์ˆซ์ž๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ๊ฐ’์„ ์ž…๋ ฅํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ• ๊นŒ?


1๋ฒˆ๊ณผ 2๋ฒˆ์„ ์ƒ๊ฐํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์„ ๊ณ„์† ์‹คํ–‰ ์‹œํ‚ค๊ธฐ ์œ„ํ•ด while๋ฌธ ์•ˆ์— switch๋ฌธ์„ ๋„ฃ์—ˆ๋‹ค.

while(true){
	// ๋ฉ”๋‰ด ๋ชฉ๋ก
    // ๋ฉ”๋‰ด ์„ ํƒ
    switch(option){
    	case 1:
        	// ์žํŒ๊ธฐ ๋ฉ”๋‰ด ์ถœ๋ ฅ
        	break;
        case 2:
        	// ์Œ๋ฃŒ์ˆ˜ ๊ตฌ๋งค
        	break;
        case 3:
        	// ์ข…๋ฃŒ
        	break;
            
        default:
        	//๋ฉ”๋‰ด์—์„œ ์ž˜๋ชป๋œ ์„ ํƒ ์ฒ˜๋ฆฌ
    }

3๋ฒˆ ์ž˜๋ชป๋œ ์Œ๋ฃŒ์ˆ˜ ์ด๋ฆ„์„ ์ž…๋ ฅํ–ˆ์„ ๋•Œ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ข…๋ฃŒํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์ฒ˜์Œ์— ๋ฉ”๋‰ด ์˜ต์…˜์„ ์„ ํƒํ•  ๋•Œ, ๊ฐ€๊ฒฉ์„ ์ž…๋ ฅํ•  ๋•Œ๋Š” ์ˆซ์ž๋ฅผ ์ž…๋ ฅ๋ฐ›๋„๋ก ํ–ˆ๋Š”๋ฐ ์ˆซ์ž๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ๊ฐ’์„ ์ž…๋ ฅํ•˜๋ฉด InputMismatchException ์˜ˆ์™ธ๊ฐ€ ๋‚˜์˜จ๋‹ค. ๊ทธ๋ ‡๊ธฐ์— ๋‹ค๋ฅธ ๊ฐ’์„ ์ž…๋ ฅ ํ•˜๋ฉด ๋‹ค์‹œ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋„๋ก ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด๋ณด์•˜๋‹ค.

1. ์ฒ˜์Œ ๋ฉ”๋‰ด ์˜ต์…˜์„ ์„ ํƒํ•  ๋•Œ

  int option;

            try {
                System.out.println("๋ฉ”๋‰ด๋ฅผ ๊ณจ๋ผ์ฃผ์„ธ์š”.");
                System.out.println("1๋ฒˆ ๋ฉ”๋‰ด ํ™•์ธ | 2๋ฒˆ ์Œ๋ฃŒ ๊ตฌ๋งค | 3๋ฒˆ ์ข…๋ฃŒ");
                System.out.print("์„ ํƒ ํ•  ๋ฒˆํ˜ธ: ");
                option = sc.nextInt();
                sc.nextLine();
            }catch(InputMismatchException e){
                System.out.println("์œ ํšจํ•˜์ง€ ์•Š์€ ์ž…๋ ฅ์ž…๋‹ˆ๋‹ค. ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.");
                sc.nextLine();
                continue;
            }

๋ฉ”๋‰ด ์˜ต์…˜์„ ๋ณด์—ฌ์ฃผ๊ณ  option์— ๋“ค์–ด์˜จ ๊ฐ’์ด ์œ ํšจํ•œ์ง€ ํ™•์ธ ํ•˜๊ธฐ์œ„ํ•ด try๋ธ”๋ก์œผ๋กœ ๊ฐ์ŒŒ๋‹ค.
๊ทธ ํ›„ InputMismatchException๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž˜๋ชป ๋œ ๊ฐ’์— ๋Œ€ํ•ด
์ž…๋ ฅ์ด ์ž˜๋ชป ๋˜์—ˆ๋‹ค ์•Œ๋ ค์ฃผ๊ณ  ์ž…๋ ฅ ๋ฒ„ํผ๋ฅผ ์ œ๊ฑฐํ•œ ํ›„
๋ฃจํ”„๋ฌธ์œผ๋กœ ๋Œ์•„๊ฐ€๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ๋‹ค.

InputMismatchException๋ฅผ ์‚ฌ์šฉํ•œ ์ด์œ ๋Š” ์ผ๋‹จ ๋‹ค๋ฅธ ์˜ˆ์™ธ ์ƒํ™ฉ์€
๋ฐœ์ƒํ•  ์ผ์ด ๋‚ฎ์„๊ฑฐ๋ผ ์ƒ๊ฐํ–ˆ๋‹ค.

2. ์Œ๋ฃŒ์ˆ˜ ๊ฐ€๊ฒฉ์„ ์ž…๋ ฅํ•  ๋•Œ

int price = drink.get(choice);
System.out.println(choice + "์˜ ๊ฐ€๊ฒฉ์€ " + price + "์› ์ž…๋‹ˆ๋‹ค.");
System.out.println("๊ธˆ์•ก์„ ํˆฌ์ž…ํ•ด์ฃผ์„ธ์š”.");

int payment = 0;

try {
	payment = sc.nextInt();
    sc.nextLine();
} catch (InputMismatchException e) {
	System.out.println("์œ ํšจํ•˜์ง€ ์•Š์€ ์ž…๋ ฅ์ž…๋‹ˆ๋‹ค. ๊ธˆ์•ก์„ ์ˆซ์ž๋กœ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.");
	sc.nextLine();
	break;
}

System.out.println("ํˆฌ์ž…๋œ ๊ธˆ์•ก: " + payment + "์›");

if (payment < price) {
	int deficit = price - payment;
    System.out.println("์ž”์•ก์ด ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค. ์ถ”๊ฐ€๋กœ " + deficit + "์›์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.");
	System.out.println("๊ธˆ์•ก์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜ํ™˜ ๊ธˆ์•ก: " + payment + "์›");
	System.out.println("์ฒ˜์Œ์œผ๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค.");
	break;

}

int change = payment - price;
System.out.println("๊ตฌ๋งค ์™„๋ฃŒ! ๋‚จ์€ ์ž”์•ก: " + change + "์›");
System.out.println("๊ตฌ๋งคํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.");
break;

๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ฐ€๊ฒฉ์„ ์ž…๋ ฅํ•˜๋Š” ๋ถ€๋ถ„์„ ์˜ˆ์™ธ์ฒ˜๋ฆฌ ํ•˜์˜€๋‹ค.

profile
์ •ํ˜•ํ™”๋˜์ง€ ์•Š์€ ๋‚  ๊ฒƒ์˜ ์ƒ๊ฐ์„ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€