자바실전_Day_16_01(클래스 - 프린트만들기 - 리팩토링)
-----------------------------------------------------------------------------------
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();
}