java 학습일기 day14 - java로 텍스트게시판 (3)

이건구·2023년 9월 13일
0

java학습일기

목록 보기
12/13

텍스트게시판 (3)

요구사항 7번 게시물삭제까지 변경점.

개선사항 1번.

else if (command.equals("help")) {
                System.out.printf("============== 사용가능한 명령어 ==============\n\n");
                System.out.printf("=========\"exit\"========== 프로그램 종료 =======\n");
                System.out.printf("=========\"add\"=========== 게시물 작성 =========\n");
                System.out.printf("=========\"list\"========== 게시물 목록 =========\n");
                System.out.printf("=========\"update\"======== 게시물 수정 =========\n");
                System.out.printf("=========\"delete\"======== 게시물 삭제 =========\n");
                System.out.printf("=========\"detail\"======== 게시물 상세보기 =====\n");
                System.out.println("======================");
            }

help 기능을 추가했다.

개선사항 2번.

else if (command.equals("detail")) {
                while (true) {
                    System.out.print("상세보기 할 게시물 번호 또는 \"back\"문구를 입력해주세요 : ");
                    String contentNum = sc.nextLine();
                    if (contentNum.equals("back")) {
                        backToIndex();
                        break;
                    }
                    try {
                        int num = Integer.parseInt(contentNum);
                        Article article = findByNum(num);
                        ArrayList<Article> detailArticle = new ArrayList<>();
                        detailArticle.add(article);
                        if (article == null) {
                            notExistNum();
                        } else {
                            printArticles(detailArticle);
                            break;
                        }
                    } catch (NumberFormatException e) {
                        inputNum();
                    }
                }
            }

detail 및 기타 기능들에서 반복되는 문구를 메인함수 바깥으로 꺼내서 함수화시켜서 메인함수의 길이를 짧게했다.

개선사항 3번.

public static Article findByNum(int num) {
        Article number = null;
        for (Article article : articles) {
            if (num == article.getId()) {
                number = article;
            }
        }
        return number;
    }

article을 순회하는 반복문을 findByNum이라는 함수화했다.

개선사항 4번.

public static void printArticleslist(ArrayList<Article> list) {
        for (Article article : list) {
            System.out.println("번호 :" + article.getId());
            System.out.println("제목 :" + article.getTitle());
            System.out.println("====================================");
        }
    }

for문을 강화된 for문으로 변경하여 코드의 길이를 조금이라도 줄이고, "list"명령어 같이 객체의 번호 제목을 출력하는 기능을 메인함수 밖에 함수화했다.

0개의 댓글