티스토리 뷰
일단은 만들어 보자 라는 의의를 갖고
if, when for, while 등을 사용해서 모든 코드를 작성해주었다.
중복코드 하나하나씩 다 만들어서 호출함!
그러다보니 코드가 너무 길어지고 내가 쓴 코드가 어떤 코드인지 모를정도로 정신없었다..!!
특히 list 이름만 바꾸면 똑같은 알고리즘을 도는 코드가 있었는데
그동안은 각각 작성해줬는데
while (true) {
coffeeList.forEachIndexed { index, item ->
println("${index + 1} ${item.name}, ${item.charge}원")
}
val back = coffeeList.size + 1
println("${back}. 뒤로가기")
try {
val num = readLine()?.toInt()
if (num == back) {
mainMenu()
break
} else {
detailMenu = coffeeList[num?.minus(1)!!].name
totalMenu.add(detailMenu)
totalCharge += coffeeList[num.minus(1)].charge
println("\n$detailMenu 를 장바구니에 넣었습니다\n")
}
} catch (e: java.lang.NumberFormatException) {
println(
"메뉴 주문은 숫자만 입력할 수 있습니다.\n"
+ "----------------------------------\n"
)
} catch (e: ArrayIndexOutOfBoundsException) {
println(
"올바르지 않은 번호입니다. 다시 입력해주세요.\n"
+ "----------------------------------\n"
)
}
}
이런 긴 코드를 항목에 맞게 각각 넣어주다보니 저런 코드만 6번은 반복되었다....!!!
그러다가 하나의 함수를 만들어서 호출하는 식으로 바뀌었고
fun cafeList(list: MutableList<Item>) {
while (true) {
list.forEachIndexed { index, item ->
println("${index + 1} ${item.name}, ${item.charge}원")
}
val back = list.size + 1
println("${back}. 뒤로가기")
val num = readLine()
if (num?.let { isNumericToX(it) } == true) {
if (num.toInt() == back) {
UseCafe().mainMenu()
break
} else if (num.toInt() in 1 until back) {
detailMenu = list[num.toInt().minus(1)].name
totalMenu.add(detailMenu)
totalCharge += list[num.toInt().minus(1)].charge
println("\n$detailMenu 를 장바구니에 넣었습니다\n")
} else {
println(
"올바르지 않은 번호입니다. 다시 입력해주세요.\n"
+ "----------------------------------\n"
)
}
}
}
}
cafeList(coffeeList)
이게 끝이라니......!!!!!
훨씬 깔끔하고 보기 좋다!!
역시 잘풀리면 재밌고 안풀리면 어려운 코딩의 세계..!!ㅜㅜ
'오늘 하루의 느낀점' 카테고리의 다른 글
230801 Today I Learned! (3) | 2023.08.01 |
---|---|
230731 Today I Learned! (0) | 2023.07.31 |
230727 Today I Learned! (0) | 2023.07.27 |
230726 Today I Learned! (0) | 2023.07.26 |
230720 Today I Learned! (0) | 2023.07.21 |