공포의 빨간 줄
개인 과제(키오스크) 코드 작성
이렇게 무식하고 비효율적이게 만들라고 낸 과제가 아닐 텐데... 고개를 갸우뚱거리면서도 우선 기능적인 측면에 비중을 두고 코드를 짰다.
Collection
을 배우면서도 언제 어느 때 어떤 자료구조를 사용해야 할지 감이 안 왔는데, 직접 사용해 보니 여기서 이런 게 가능하면 좋을 텐데... 하는 생각이 들었다. 메뉴와 가격을 key-value로 다루고 싶어 hashMap
을 사용했다가 순서 유지를 위해 LinkedHashMap
을 사용했다가... 결국 작업했던 걸 전부 버리고 List
로 정착.
메뉴가 늘어날 때마다 리스트가 추가되면 너무 지저분해 보일 것 같아 처음엔 이름/가격/메뉴로 리스트를 세 개 만들었다. 다만 이 경우엔 반환할 값이 하나 이상이 되어 메서드에선 사용이 불가해졌다. 때문에 메뉴 당 리스트를 할당하는 것으로 변환, 어느 쪽이 정답에 가까울지 몰라서 구현해가며 조절해봐야겠다.
해결
public ArrayList returnList(String orderNum) { int menuNum = Integer.parseInt(orderNum); switch (menuNum) { case 1 : return menu1; case 2 : return menu2; case 3 : return menu3; case 4 : return menu4; case 5 : return menu5; case 6 : return menu6; } return null; }
좋은 방법이 떠오르면 수정하겠다...
입력받은 주문 값을 가지고 조건문을 걸러 해당 리스트를 반환해 add하는 식으로 해결했다. 완벽한 방법이 아닌 걸 알고 있지만 전체 큰 틀부터 문제가 심한 것 같아 이게 한계다. 🤣
Getter/Setter
를 이용하면 더 효율적으로 짤 수 있을 것 같다. 제출 마감 시간 전까지 더 간략화할 방법을 찾아봐야겠다..get()
을 두 번 사용하면 될 것 같은데 이유 모를 오류가 난다. 내일 중점적으로 해결할 것!