드디어 2번째 팀과제를 마쳤다. 결론부터 말하자면 내가 구현한 기능은 발전과 스스로에 대한 고민이 매우 필요한 코드였으므로 앞으로 더 열심히 해야겠다는 생각이 많이 들었다.
오늘 TIL은 아주아주 간단한 if문 사용법을 풀어쓴 경험담이다.
문제: 코드를 병합하는 과정에서 기존에 내가 만든 주문 현황보다는 다른 팀원이 대기주문목록, 완료주문목록(주문 건 별로 리스트를 add 하는 arraylist메서드)에 사용한 코드를 긁어오는 것이 소비자 입장에서 보았을 때 편리할 것이라 판단되었다. 그래서 코드를 수정하는 과정이었고 주문완료된 목록, 대기 중인 목록을 순차적으로 보이도록 해야 했다. 이때, if문을 활용하여 주문완료되지 않거나 대기중인 목록이 없으면 완료되지 않았다 / 목록이 없다는 문구를 띄어야 했다.
[대기주문목록, 완료주문목록에 사용한 코드 - 긁어온 코드]
System.out.println("[ 최근에 완료된 주문목록 ]");
for (Order o : manageList) {
// 완료 x 주문만 골라 출력
if (!o.finished) {
System.out.println("=============================================");
System.out.println("-- 주문 번호 : " + o.getOrderNumber() + " --");
printListData(o.getBasket());
System.out.println("-- total : W " + o.totalPrice());
System.out.println("-- 요청사항 : " + o.getRequest());
System.out.println("-- 주문 일시 : " + o.orderedTime);
}
System.out.println();
System.out.println("-------------------------");
System.out.println("[ 대기 중인 주문 목록 ]");
for (Order o : manageList) {
if (o.finished) {
System.out.println("=============================================");
System.out.println("-- 주문 번호 : " + o.getOrderNumber() + " --");
printListData(o.getBasket());
System.out.println("-- total : W " + o.totalPrice());
System.out.println("-- 요청사항 : " + o.getRequest());
System.out.println("-- 주문 일시 : " + o.orderedTime);
System.out.println("-- 완료 일시 : " + o.finishedTime);
}
}
System.out.println("메인 메뉴로 돌아갑니다.");
showMainMenu();
}
시도: if문을 넣어서 결과값을 보기 시작함
System.out.println("[ 최근에 완료된 주문목록 ]");
int i = 0;
for (Order o : manageList) {
// 완료 x 주문만 골라 출력
if (!o.finished) {
System.out.println("=============================================");
System.out.println("-- 주문 번호 : " + o.getOrderNumber() + " --");
printListData(o.getBasket());
System.out.println("-- 주문 일시 : " + o.orderedTime);
}
if (i==0){System.out.println("주문완료된 목록이 없습니다.");}
System.out.println();
System.out.println("-------------------------");
System.out.println("[ 대기 중인 주문 목록 ]");
int i = 0;
for (Order o : manageList) {
if (o.finished) {
System.out.println("=============================================");
System.out.println("-- 주문 번호 : " + o.getOrderNumber() + " --");
printListData(o.getBasket());
System.out.println("-- 주문 일시 : " + o.orderedTime);
System.out.println("-- 완료 일시 : " + o.finishedTime);
}
if (i==0){System.out.println("대기 중인 목록이 없습니다.");}
}
System.out.println("메인 메뉴로 돌아갑니다.");
showMainMenu();
}
이런 식으로 if문을 활용하여 두 타입(완료된 주문 / 완료되지 않은 주문 등)으로 나누어보았고 결과값은 대기 중인 주문 목록에 완료된 주문 목록이 확인되었고 완료된 주문목록에는 대기 중인 목록이 확인되어 있었다.
*이건 내가 두 함수를 바꿔써서 넣었으므로 바로 수정하였다!
*대기 중인 주문 목록쪽에 int i = 0은 심지어 orderStatus(){}에서 이미 사용되었기 때문에 오류로 떠서 i = 0으로 바꿔서 썼다.
=뒤죽박죽 코드가 되어 버렸다.
해결: 그리고 최근 완료된 3개를 도출하기 위해(i<3)를 추가하였다.
System.out.println("[ 최근에 완료된 주문목록 ]");
int i = 0;
for(Order o : manageList){
if(o.finished){
System.out.println("=============================================");
System.out.println("-- 주문 번호 : " + o.getOrderNumber() + " --");
printListData(o.getBasket());
System.out.println("-- 주문 일시 : " + o.orderedTime);
System.out.println("-- 완료 일시 : " + o.finishedTime);
i++;
}
if(i>2){
break;
}
}
if(i==0){
System.out.print("주문 완료된 상품이 없습니다.");
}
System.out.println();
System.out.println("-------------------------");
System.out.println("[ 대기 중인 주문 목록 ]");
i=0;
for(Order o : manageList){
if(!o.finished){
System.out.println("=============================================");
System.out.println("-- 주문 번호 : " + o.getOrderNumber() + " --");
printListData(o.getBasket());
System.out.println("-- 주문 일시 : " + o.orderedTime);
i++;
}
if(i>2){
break;
}
}
if(i==0){
System.out.print("대기 중인 상품이 없습니다.");
}
System.out.println("메인 메뉴로 돌아갑니다.");
showMainMenu();
}
새 앎: 이제 대략적으로 if문을 어떻게 사용하는지 감이 잡히는 것 같다. 그럼에도 아직 if를 사용해서 최신순으로 데이터를 뽑는 것은 어려운 것 같다. 응용된 버전을 더 공부하고 익숙하게 만들어야겠다.
'TIL (Today I Learned)' 카테고리의 다른 글
TIL) MySQL 데이터베이스 생성하는 법 (0) | 2023.06.13 |
---|---|
WIL) 6월 2째주 주간회고 / Java 문법과 키오스크 관리자 모드 만들기 (0) | 2023.06.11 |
TIL) IntelliJ와 Git으로 협업을 해보자 (0) | 2023.06.08 |
TIL) 최근 주문목록만 출력할 수 있도록 if문 사용하기 (0) | 2023.06.08 |
TIL) 팀과제 - MemoVO로 메모장 구현하기 (0) | 2023.06.05 |