문제 -게시판 페이징 하기

윤재열·2022년 1월 11일
0

Java

목록 보기
24/71
post-custom-banner

A 씨는 게시판 프로그램을 작성하고 있다. 그런데 게시물의 총 건수와 한 페이지에 보여 줄 게시물 수를 입력으로 주었을 때 총 페이지 수를 출력하는 프로그램이 필요하다고 한다.

※ 이렇게 게시판의 페이지 수를 보여 주는 것을 "페이징"한다고 부른다.

  • 메소드 이름은? getTotalPage
  • 입력 받는 값은? 게시물의 총 건수(m), 한 페이지에 보여줄 게시물 수(n)
  • 출력하는 값은? 총 페이지수

마약 총건수가 100개,한페이지당 보여질 게시물의 수가 5개 일때
총 페이지수는 20개가 필요하게된다.

우선 위의 페이징을 보면서 메서드를 만들어보자

getTotalPage(페이지의 총 건수m,페이지에 보여줄 게시물 수 n){
m/n
}

끝이라고 생각했다....하지만 다시 생각해보면 만약에 총건수가101개,페이지에 보여질 게시물의 수가 5개라면?
총 페이지수는 21개가 필요하게 된다.
이럴때도 '%' 연산자가 필요하다.
m%n == 0일 때는 그대로 출력해도 되지만 m%n !=0이라고한다면 +1을 해줘야 한다.
따라서 if문이 들어가야한다.

if(m%n == 0){
return m/n;
}
return m/n +1
}

이렇게 만들어 주면 좋다.
그렇게 되면 클래스의 변수는 당연히 게시물의 총건수m,페이지에 보여질 게시물 수n이된다.
생성자또한 매개변수에 m,n을 넣어야 한다.
그렇게 클래스를 만들고 Scanner를 import해서 만들어보면

import java.util.Scanner;

public class Ex2 {
    public int m;   //게시물의 총 건수
    public int n;   //페이지당 게시물의 건수

    public Ex2(int m, int n) {
        this.m = m;
        this.n = n;
    }

    public Ex2() {
    }
    public int getTotalPage() {
        if (m % n == 0) {
            return m / n;
        }
        return m / n + 1;
    }

    public static void main(String[] args) {
        Scanner sc= new Scanner(System.in);
        System.out.println("게시물의 총 건수를 입력하세요");
        int post = sc.nextInt();
        System.out.println("한페이지당 보여줄 게시물 건수를 입력하세요.");
        int page = sc.nextInt();

        Ex2 ex = new Ex2(post,page);
        System.out.println(ex.getTotalPage());
    }
    }

profile
블로그 이전합니다! https://jyyoun1022.tistory.com/
post-custom-banner

0개의 댓글