728x90
예시)
아래 메뉴판을 보시고 메뉴를 골라 입력해주세요.
[ SHAKESHACK MENU ]
1. Burgers | 앵거스 비프 통살을 다져만든 버거
2. Forzen Custard | 매장에서 신선하게 만드는 아이스크림
3. Drinks | 매장에서 직접 만드는 음료
4. Beer | 뉴욕 브루클린 브루어리에서 양조한 맥주
0. 종료 | 프로그램 종료
1 <-
[ Burgers MENU ]
1. ShackBurger | W 6.9 | 토마토, 양상추, 쉑소스가 토핑된 치즈버거
2. SmokeShack | W 8.9 | 베이컨, 체리 페퍼에 쉑소스가 토핑된 치즈버거
3. Shroom Burger | W 9.4 | 몬스터 치즈와 체다 치즈로 속을 채운 베지테리안 버거
3. Cheeseburger | W 6.9 | 포테이토 번과 비프패티, 치즈가 토핑된 치즈버거
4. Hamburger | W 5.4 | 비프패티를 기반으로 야채가 들어간 기본버거
0. 뒤로가기 | 뒤로가기
0 <-
[ SHAKESHACK MENU ]
1. Burgers | 앵거스 비프 통살을 다져만든 버거
2. Forzen Custard | 매장에서 신선하게 만드는 아이스크림
3. Drinks | 매장에서 직접 만드는 음료
4. Beer | 뉴욕 브루클린 브루어리에서 양조한 맥주
0. 종료 | 프로그램 종료
0 <-
프로그램을 종료합니다.
예시로 참고할 쉑쉑버거의 메뉴판

- 입력받은 숫자에 따른 로직을 실행하는 코드 작성해 보기
- if 나 when을 활용하기
- 필요한 클래스들을 설계해 보기(버거, 아이스크림, 음료, 맥주 등)
- 예외처리
KioskProgramming.kt

mainMenu.kt

- mainMenu의 mainOrder()에서 메뉴판들을 나열하고 mainChoose에 숫자(Int)를 받는다
- when(mainChoose)를 이용해서 각 번호에 맞춰서 각 클래스를 호출시킨다
- 0일 땐 주문 종료 메시지, else(1~4, 0을 제외한 다른 숫자) 일 땐 경고 메시지
- try-catch를 이용해서 mainChoose에 숫자가 아닌 string형이나 다른 타입이 입력됐을 때 예외처리 메시지
burgers.kt


frozenCustard.kt


drinks.kt


beer.kt

주문 결과

예외처리 결과

- 1~4, 0을 제외한 번호를 입력했을 때, 경고 메시지 후 메뉴판을 다시 보여준다
- Int형이 아닌 String타입을 입력했을 때, 경고 메시지 후 메뉴판을 다시 보여준다
주먹구구식으로 표현했기 때문에 몇 번의 추가/수정 작업이 필요하다
- 클래스들의 프로퍼티와 메서드 정의하기
- 클래스들을 상속 관계를 가지도록 변경하기
- 하나의 리스트객체로 모든 메뉴들을 관리하도록 수정하기
그나마 기능적으로 쓰인 건 when과 try-catch 뿐인 것 같다
무식하게 println으로 처리한 것들을 대폭 변경 할 각오를 해야 할 것 같다
문제를 제대로 이해한건지도 감이 안잡히거나, 문제는 이해가 갔는데 어떻게 해야할지 막막한게 대부분..
호텔예약과제는 손도 못대고 다음 챕터로 넘어갈 것 같다
728x90
'코틀린(Kotlin) > 해보기' 카테고리의 다른 글
[코틀린(Kotlin)] 로그인, 회원가입, 자기소개 페이지 만들기 (1) | 2023.12.15 |
---|---|
[코틀린(Kotlin)] 키오스크 프로그래밍 (2 (0) | 2023.12.06 |
[코틀린(Kotlin)] 계산기 (Lv3) (0) | 2023.11.30 |
[코틀린(Kotlin)] 계산기 (Lv1, Lv2) (0) | 2023.11.29 |
[코틀린(Kotlin)] 로또 번호 생성기 (1) | 2023.11.07 |