- 코드 리뷰
- enum 이란?
import Foundation
class KioskMenu {
func printMenu() {
print("SHACKSHACK 버거에 오신걸 환영합니다.")
print("아래 메뉴판을 보시고 메뉴를 골라 입력해주세요.")
print("1. Burgers | 앵거스 비프 통살을 다져만든 버거")
print("2. Frozen Custard | 매장에서 신선하게 만드는 아이스크림")
print("3. Drinks | 매장에서 직접 만드는 음료")
print("4. Beer | 뉴욕 브루클린 브루어리에서 양조한 맥주")
print("5. Back | 프로그램 종료")
print("Enter the number of your choice: ", terminator: "")
}
func processUserChoice(choice: Int) -> Bool {
switch choice {
case 1:
showMenu1()
case 2:
showMenu2()
case 3:
showMenu3()
case 4:
showMenu4()
case 5:
showMenu5()
print("Exiting the program.")
return false
default:
print("잘못된 접근입니다. 다시 실행해 주십시오.")
}
return true
}
func getUserInput() -> Int {
if let input = readLine(), let choice = Int(input) {
return choice
} else {
return 0
}
}
func showMenu1() {
print("You selected Menu 1.")
// Menu 1의 세부 항목을 구현하면 됩니다.
}
func showMenu2() {
print("You selected Menu 2.")
// Menu 2의 세부 항목을 구현하면 됩니다.
}
func showMenu3() {
print("You selected Menu 3.")
// Menu 3의 세부 항목을 구현하면 됩니다.
}
func showMenu4() {
print("You selected Menu 4.")
}
func showMenu5(){
print("You selected Menu 5.")
}
}
var isRunning = true
let menu = KioskMenu()
while isRunning {
menu.printMenu()
let userChoice = menu.getUserInput()
isRunning = menu.processUserChoice(choice: userChoice)
}
위 코드가 내가 어제 하루 종일 구글링과 지피티를 활용해서 열심히 짠 코드였다. 매일 10시마다 팀원들과 모여서 각자 작성한 코드를 리뷰하는 시간을 가졌다.
내 코드를 보고 개선해야 할 점에 대해 팀원에게 틀었다.
위 개선사항을 듣고 현재 내 코드는 잘못된 코드구나. 하는 생각에 오늘은 이 코드에서 더 추가하거나 하는것이 아닌 새롭게 작성할 계획이다. enum을 사용하기 위해서는 enum에 대해서 추가로 더 공부해야했다. 오늘은 enum에 대해서 공부를 진행할 것이다.
'enum'은 열거형(Enumeration)을 나타내는 키워드이다. 열거형은 서로 연관된 값을 그룹화하여 나타내는 데 사용되며, 한정된 값들의 집합을 정의하는 데 유용하다. 각각의 값을 case(케이스)라고 부른다.
<enum 기본 로직 구성>
enum 이름 {
case 이름1
case 이름2
case 이름3
//...
}
<열거형 사용법>
enum fruits
case apple
case banana
case lemon
case peach
enum fruits
case apple, banana, lemon, peach
enum Fruits {
case apple
case banana
case lemon
case peach
case coconut
case bear
case lime
}
var seed: Fruits = Fruits.banana // 열거형 타입과 케이스를 모두 사용해도 됌.
seed = .lemon //type이 명확하다면 .케이스 처럼 표현해도 괜찮음.
print(seed)
switch seed{
case .apple, .banana, .peach, .bear:
print("맛있다!")
case Fruits.lemon, Fruits.lime:
print("시다 시!!")
case .coconut:
print("딱딱해")
}