티스토리 뷰

일단은 만들어 보자 라는 의의를 갖고

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
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/06   »
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
글 보관함