TIL 기준
1. 어떤 문제가 있었는지
2. 내가 시도해 본 것들
3. 어떻게 해결했는지
4. 뭘 새롭게 알았는지
=문시해알
오늘은 1문제에 봉착하여 이를 풀어가는 과정을 기록하였다.
키오스크를 업그레이드하는 팀과제를 부여받았는데 내가 맡은 업무는 소비자가 주문 현황 화면을 선택하였을 때 다음과 같은 정보를 포함하는 화면을 만드는 것이었다.
주문 현황에서는
- 맨 위에 완료된 최근주문 3개를 출력한다.
- 그 아래에 대기 중인 모든 주문 목록을 출력한다.
가 포함되어 있어야 했고 기존에 만들어 놓은 코드는 최근 주문과 대기 중인 주문 목록이 모두 출력 가능하였으나 최근 주문 3개를 출력하는데 어려움이 있었다. (문제)
[ 현재 상황]
public void OrderStatus() { //주문현황
System.out.println();
System.out.println("[ 최근에 주문완료된 목록 ]");
for(int i=0; i<finishedOrders.size(); i++){
FoodMenu finished = finishedOrders.get(i);
System.out.println(finished.getName() + " | " + finished.getPrice() + " | " + finished.getDescription());}
}
System.out.println();
System.out.println("-------------------------");
System.out.println("[ 대기 중인 주문목록 ]");
for (int i = 0; i < waitingOrders.size(); i++) {
FoodMenu wait = waitingOrders.get(i);
System.out.println(wait.getName() + " | " + wait.getPrice() + " | " + wait.getDescription());
}
}
시도: if 문으로 ==0이라는 구문을 사용해 보았더니 주문이 완료되지 않았을 때를 확인할 수 있었다.
여러 시도 끝에 if문과 if else -else를 시도한 끝에 주문 개수별로 항목을 세분화하여 결과를 도출할 수 있었다.
해결: if-else문으로 최근 3개 도출 성공!
새 앎: if문을 처음부터 끝까지 나의 선택으로 완성한 것은 이번이 처음인데 더 고급진 코드로 있을 것이라 생각되어 계속 공부하고 도전해야겠다.
그렇게 완성된 코드는 다음과 같다!
public void OrderStatus() { //주문현황
System.out.println();
System.out.println("[ 최근에 주문완료된 목록 ]");
if (finishedOrders.size()>=4) {
System.out.println("4개 이상의 주문이 완료되었습니다.");
} else if (finishedOrders.size()==0) {
System.out.print("주문완료된 상품이 없습니다.");
} else {
for(int i=0; i<finishedOrders.size(); i++){
FoodMenu finished = finishedOrders.get(i);
System.out.println(finished.getName() + " | " + finished.getPrice() + " | " + finished.getDescription());}
}
System.out.println();
System.out.println("-------------------------");
System.out.println("[ 대기 중인 주문목록 ]");
if (waitingOrders.size()==0) {
System.out.print("대기 중인 상품이 없습니다.");
} else {
for (int i = 0; i < waitingOrders.size(); i++) {
FoodMenu wait = waitingOrders.get(i);
System.out.println(wait.getName() + " | " + wait.getPrice() + " | " + wait.getDescription());
}
}
}
다만, 마지막에 깨달았지만 대기 중인 주문목록이 1개일 경우, 같은 값이 반복해서 도출된다는 것을 깨달았다. For문의 한계라고 생각되는데 이에 대한 문제는 집요하게 파서 개선해야겠다.
'TIL (Today I Learned)' 카테고리의 다른 글
TIL) If문, 넌 내꺼야 (੭ꐦ •̀Д•́ )੭* ᑦᵒᔿᵉ ᵒᐢᵎᵎ (0) | 2023.06.09 |
---|---|
TIL) IntelliJ와 Git으로 협업을 해보자 (0) | 2023.06.08 |
TIL) 팀과제 - MemoVO로 메모장 구현하기 (0) | 2023.06.05 |
WIL) 찐아기개발자의 코드 번아웃과 극복법 (0) | 2023.06.05 |
TIL) Oracle에서 제공한 array Quiz (0) | 2023.06.05 |