텍스트게시판 (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"명령어 같이 객체의 번호 제목을 출력하는 기능을 메인함수 밖에 함수화했다.