개발의 시작과 끝

2020.05.09 / Day - 27 자바 게시판 구현 의문점 본문

풀스택/자바 공부, 복습

2020.05.09 / Day - 27 자바 게시판 구현 의문점

개발지혜 2020. 5. 9. 23:13

27일차

 

게시판을 만드면서 이해가 안갔던 부분

// * 게시물 리스트
  void artcleList() {
    int articleCount = getArticleCount();

    if(articleCount == 0) {
      System.out.println("게시물이 존재하지 않습니다.");
      return;
    } else {
      System.out.println("번호, 날짜, 제목");
      for(int i = 0; i <= articleLastIndex; i++) {
        System.out.printf("%d, %s, %s\n", articles[i].num, articles[i].date, articles[i].title);
      }
    }
  }

조건문 중 articleCount > 0 이 아닌 articleCount == 0인 이유

lastIndex는 처음에 태어날 때부터 -1의 값을 가지고 있는다.

getArticleCount = lastIndex + 1;

즉, 게시물이 없을 경우 getArticleCount = 0;

게시물 리스트에서 articleCount가 0(getArticleCount )일때 articleCount가 0이면 게시물이 없다고 나온다.

 

<가장 마지막에 저장된 함수>를 만들 때 getArticleCount함수(값 = 0)가 0 보다 작으면 

else를 돌려받기때문에 <가장 마지막에 저장된 함수>의 값은 null이 된다.

 

전 글에서 add를 만들 때 코드를 봤을 때,

add에서 게시물이 추가되면 처음에 돌려받았던 값이 null이기 때문에 lastIndex는 0이 아닌 1이 된다.

반대로 추가되지 않으면 0인 상태인 셈이다. 

따라서 다시 돌아가보면 getArticleCount0이 된다.

결론 게시물이 존재하지 않을 때는 add를 하지 않았을 때 밖에 없다.

add에서 게시물을 추가할 때 lastIndex가 null(getArticleCount = 0)이면 1이 되게 해놨기 때문에 

0인 상태이면 게시물이 없는 것이되므로 articleCount > 0이 아니다.