카테고리 없음

자바실전_Day_16_01(클래스 - 프린트만들기 - 리팩토링)

구이제이 2024. 1. 22. 18:41

-----------------------------------------------------------------------------------



1번째 예제

 

●결과값

 

 

 

Scanner scan = new Scanner(System.in);

System.out.print("인쇄 방식 선택 (1. 단면, 2. 양면)");

int printingMethod = scan.nextInt();

 

System.out.println("인쇄할 매수 입력 >> ");

int printAmount = scan.nextInt();

 

printShow(printAmount, printingMethod); //메소드 호출

 

 

 

}//end of main

 

public static void printShow(int printAmount, int printingMethod) {

int paperNumber = 100; //초기 용지

 

//1.양면인쇄일 때

if(printingMethod ==2) {

//인쇄할용지매수 = 인쇄할 용지 매수가 짝수일 때 인쇄할 용지 매수가 홀수일때

printAmount = (printAmount % 2 == 0)? printAmount/2 : printAmount /2 +1;

// (조건) ? 조건의 결과가 true일때 실행할 문장 : 조건의 결과가 거짓일 때 실행할 문장

}//

 

if(paperNumber==0) {//기본 용지가 없을 때

System.out.println("용지 없음");

}else if(paperNumber < printAmount) {//인쇄할 매수가 기본용지보다 많을 때

//인쇄할 매수 - 기본용지

System.out.println("용지 부족 : " + (printAmount - paperNumber));

System.out.println(paperNumber + "장만 인쇄");

paperNumber = 0; //기본용지를 0으로 설정

}else {

paperNumber-=printAmount; // 인쇄 후 남는 기본용지 = 기본용지 - 인쇄할 용지매수

System.out.println(printAmount + "장 출력");

System.out.println("남은 용지 매수 : " + paperNumber);

}

}

 

 

 

-----------------------------------------------------------------------------------



1번째 예제 - 리팩토링

 

●결과값

 

public class Print {

 

 

static private int paperNumber = 100; //초기 용지

//static private int printAmount; //프린트입력값

static Scanner scan = new Scanner(System.in); //스캐너

 

 

 

 

 

//생성자.. 항상 만들어야 하는가? 객체 생성할꺼면 해야되지만.. 클래스 메소드만 사용할거라면.. 안해도되지 않을까요?

public Print() { }

 

 

 

 

 

 

public static void printShow() {

 

//용지가 없다면 프린트는 종료됩니다. paperNumber = 용지갯수

while(!(paperNumber==0)) {

System.out.print("인쇄 방식 선택 (1. 단면, 2. 양면)");

int printingMethod = scan.nextInt();

 

System.out.println("인쇄할 매수 입력 >> ");

int printAmount = scan.nextInt();

 

 

 

//1.양면인쇄일 때

if(printingMethod ==2) {

//인쇄할용지매수 = 인쇄할 용지 매수가 짝수일 때 인쇄할 용지 매수가 홀수일때

printAmount = (printAmount % 2 == 0)? printAmount/2 : printAmount /2 +1;

// (조건) ? 조건의 결과가 true일때 실행할 문장 : 조건의 결과가 거짓일 때 실행할 문장

}//

 

if(paperNumber==0) {//기본 용지가 없을 때

System.out.println("용지 없음");

}else if(paperNumber < printAmount) {//인쇄할 매수가 기본용지보다 많을 때

//인쇄할 매수 - 기본용지

System.out.println("용지 부족 : " + (printAmount - paperNumber));

System.out.println(paperNumber + "장만 인쇄");

paperNumber = 0; //기본용지를 0으로 설정

}else {

paperNumber-=printAmount; // 인쇄 후 남는 기본용지 = 기본용지 - 인쇄할 용지매수

System.out.println(printAmount + "장 출력");

System.out.println("남은 용지 매수 : " + paperNumber);

}

}

}

}

 

 

 

 

public static void main(String[] args) {

// TODO Auto-generated method stub

 

//프린트문제 : 클래스 변경

Print.printShow();

 

}