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 ์์ธ๊ฐ ๋์จ๋ค. ๊ทธ๋ ๊ธฐ์ ๋ค๋ฅธ ๊ฐ์ ์
๋ ฅ ํ๋ฉด ๋ค์ ์
๋ ฅํ ์ ์๋๋ก ์ฝ๋๋ฅผ ์์ฑํด๋ณด์๋ค.
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๋ฅผ ์ฌ์ฉํ ์ด์ ๋ ์ผ๋จ ๋ค๋ฅธ ์์ธ ์ํฉ์
๋ฐ์ํ ์ผ์ด ๋ฎ์๊ฑฐ๋ผ ์๊ฐํ๋ค.
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;
๋ง์ฐฌ๊ฐ์ง๋ก ๊ฐ๊ฒฉ์ ์ ๋ ฅํ๋ ๋ถ๋ถ์ ์์ธ์ฒ๋ฆฌ ํ์๋ค.