일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- weak var
- UIAlertAction
- WeatherManager
- RunningTimer
- 서체관리자
- CoreLocation
- 한국어 개인정보처리방침
- MKMapItem
- MKMapViewDelegate
- Protocol
- 러닝기록앱
- CLLocationManagerDelegate
- Required Reason API
- 단일 책임원칙
- Xcode
- UICollectionViewFlowLayout
- weatherKit
- xcode로 날씨앱 만들기
- Startign Assignments
- swift
- 영문 개인정보처리방침
- AnyObject
- font book
- 클로저의 캡슐화
- App Store Connect
- dispatchsource
- Timer
- addannotation
- SwiftUI Boolean 값
- 러닝타이머
- Today
- Total
VesselWheel
키오스크 프로그램(lv3) 본문
메인메뉴 class
class menu 에서 printMainMenu() 클로져로 초기화 하고
while true 문으로 콘솔창에 프린트 될 shakeshack menu를 입력한다.
키오스크 화면(콘솔 창)에서 shakeshack menu는 무한 반복되어 입력 결과에 상관없이 계속 프린트 되어야 한다.
하지만 while true는 무한 반복문으로 명시적인 종료 조건이 필요하다.
따라서 사용자가 0을 입력하면 "키오스크를 종료합니다." 를 프린터하면서 return으로 함수를 종료한다.
보조메뉴1 메소드
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도 마찬가지로 Optional Binding과 Chanining을 활용해서 구현하였다.
else if문을 추가하며 보조메뉴의 세부메뉴 번호를 입력하면 메뉴설명이 나오도록 하는 것은 추가하면 되겠다.
'Xcode Study' 카테고리의 다른 글
Xcode 시작하기 - 화면 - Interface (1) | 2023.12.11 |
---|---|
키오스크 프로그램에 사용된 protocol과 extension (0) | 2023.12.09 |
키오스크 프로그램(lv1) (0) | 2023.12.06 |
키오스크 프로그램과 클로져 (0) | 2023.12.05 |
Mutating Keyword (0) | 2023.12.05 |