VesselWheel

키오스크 프로그램(lv3) 본문

Xcode Study

키오스크 프로그램(lv3)

JasonYang 2023. 12. 6. 19:34

메인메뉴 class

메인메뉴 구현부

class menu 에서 printMainMenu() 클로져로 초기화 하고

while true 문으로 콘솔창에 프린트 될 shakeshack menu를 입력한다. 

키오스크 화면(콘솔 창)에서 shakeshack menu는 무한 반복되어 입력 결과에 상관없이 계속 프린트 되어야 한다. 

 

하지만 while true는 무한 반복문으로 명시적인 종료 조건이 필요하다. 

따라서 사용자가 0을 입력하면 "키오스크를 종료합니다." 를 프린터하면서 return으로 함수를 종료한다. 

 

보조메뉴1 메소드

BurgerMenu() 메소드

if let input = Int(readLine() ?? "") 이 부분의 코드는 Optional Binding과 Optional Chaining을 이용한 코드로

1. readline() ?? "" : 사용자가 키보드로 콘솔창에 입력하면 문자열로 받아오고 Optional Chaining으로 인해 입력값이 없으면 "" 문자열을 가져오며 print("error: 숫자를 적어주세요")가 인쇄되며, while true문이 반복되어 콘솔창에 인쇄된다. 

2. Int(readline() ?? "") : readline() 으로 콘솔창에 입력된 숫자를 Int 값으로 받아와 옵셔널로 input 인스턴트에 가져오며 

3. if input == 0이면 print("메인 메뉴로 이동합니다.")를 인쇄하고 break 반복문 종료가 된다.

4. Optional Binding으로 숫자로 변환이 가능한 경우에만 input 에 그 값을 할당하고 if문을 실행한다.

 

보조메뉴2 메소드

보조메뉴 2 printFrozenCustardMenu()를 구현한 모습

보조메뉴 2도 마찬가지로 Optional Binding과 Chanining을 활용해서 구현하였다. 

else if문을 추가하며 보조메뉴의 세부메뉴 번호를 입력하면 메뉴설명이 나오도록 하는 것은 추가하면 되겠다.