슬기로운슬기

개인과제에서 필수사항을 마무리하고 이제 선택사항 중에서 주문 개수를 추가하는 기능을 만들려고 하는데 생각 보다 어려움이 많았다. 리스트안에 원래 count도 없었고 대충 어떻게 할지 감은 오는데 코드로 작성할려고하니까 머리가 아팠음.. 계속 count때문에 코드가 돌아가지 않았음.. 

 

 

 

원래는  for문이 없는 상태였으나

for문을 추가해서 받은 이름이 리스트안에 있는 이름과 같으면 for문이 실행되고 

같지않으면 밑에있는 if문을 실행시키게 로직을 짰다. 

 

여기서 내가 겪은 문제는 처음에 boolean값 적용안해주고 for문과 if문을 사용해서 그냥 작성을 했었다... 그러니까 잘 돌아가지가 않았다... 

그래서  boolean값으로 구분해주고  setCount() 메서드를 만들어서 count를 올려주있다.

같이 공부하시는 분 도움 받아서 해결 ! 

    void setOrderList(int num) { // 선택한 메뉴를 orderlist에 저장
        Shop menu = menuList.get(num - 1);
        int count = 1;
        boolean doubleCheck = true; // 저장된 리스트인지 확인하기 위한 불린값

        for (Order order : orderList) { // 똑같은 이름의 리스트가 있으면 count + 1
            if (order.getName().equals(menu.getName())) {
                order.setCount();
                doubleCheck = false;
                break;
            }
        }
        if (doubleCheck) {  //똑같은 이름의 리스트가 없는 경우 실행
            Order newOrder = new Order(menu.getName(), menu.getPrice(), 1, menu.getDescription());
            orderList.add(0, newOrder);
        }

        System.out.println(menu.getAll());
        System.out.println(menu.getName() + "가 장바구니에 추가되었습니다.");
        System.out.println();
    }
    public void setCount() {
        count += 1;
    }

 

 

반응형
profile

슬기로운슬기

@스를기

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!