A 씨는 게시판 프로그램을 작성하고 있다. 그런데 게시물의 총 건수와 한 페이지에 보여 줄 게시물 수를 입력으로 주었을 때 총 페이지 수를 출력하는 프로그램이 필요하다고 한다.
※ 이렇게 게시판의 페이지 수를 보여 주는 것을 "페이징"한다고 부른다.
마약 총건수가 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());
}
}