ScannerUtil을 두고 자주 사용하는 메소드를 util 패키지에서 불러서 사용하기
ScannerUtil 클래스 코드
package util;
import java.util.Scanner;
//Scanner 클래스를 통해 입력을 받을 시에 도움이 될만한 static 메소드를 모아둔 클래스
public class ScannerUtil {
// 1. 입력시 사용자에게 보여줄 메세지 출력을 담당할 메소드
public static void printMessage(String message){
System.out.println(message);
System.out.println("> ");
}
// 2. 스캐너 버그를 미리 방지하는 nexLine()
public static String nextLine(Scanner scanner, String message){
printMessage(message);
String temp = scanner.nextLine();
if(temp.isEmpty()){
temp = scanner.nextLine();
}
return temp;
}
// 3. 사용자로부터 정수 입력을 담당하는 nexInt()
public static int nextInt(Scanner scanner, String message){
printMessage(message);
int temp = scanner.nextInt();
return temp;
}
//파라미터의 순서가 중요 파라미터의 순서가 다른 경우 같은 함수이름을 사용할수 있음
// 4. 사용자로부터 특정 범위의 정수 입력을 담당하는 nextInt()
public static int nextInt(Scanner scanner, String message, int min, int max){
int temp = nextInt(scanner, message);
while (temp < min || temp > max) {
System.out.println("잘못 입력하셨습니다.");
temp = nextInt(scanner, message);
}
return temp;
}
}
메소드 문제 풀이 방법(2) util패키지의 ScannerUtil 사용해서 풀어보기
package Day01;
import util.ScannerUtil;
import java.util.Scanner;
public class Ex02Gradebook_easy {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 1. 입력
// 1-1. 번호입력
int id = getId(scanner);
// 1-2. 이름 입력
String name = getName(scanner);
// 1-3. 국어점수 입력
int korean = getKorean(scanner);
// 1-4. 영어점수 입력
int english = getEnglish(scanner);
// 1-5. 수학점수 입력
int math = getMath(scanner);
// 2. 출력
// 2-1. 번호, 이름 출력
// 2-2. 국어, 영어, 수학 출력
// 2-3. 총점계산
// 2-4. 평균계산
// 2-5. 총점 평균 출력
printInfo(id, name, korean, english, math);
scanner.close();
}
public static int getId(Scanner scanner){
String message = "학생의 번호를 입력해주세요.";
return ScannerUtil.nextInt(scanner, message);
}
public static String getName(Scanner scanner){
String temp;
String message = "학생의 이름을 입력해주세요.";
temp = ScannerUtil.nextLine(scanner, message);
return temp;
}
public static int getKorean(Scanner scanner){
String message = "학생의 국어점수를 입력해주세요.";
int min;
int max;
min = 0;
max = 100;
return ScannerUtil.nextInt(scanner, message, min, max);
}
public static int getEnglish(Scanner scanner){
String message = "학생의 영어점수를 입력해주세요.";
int min;
int max;
min = 0;
max = 100;
return ScannerUtil.nextInt(scanner, message, min, max);
}
public static int getMath(Scanner scanner){
String message = "학생의 수학점수를 입력해주세요.";
int min;
int max;
min = 0;
max = 100;
return ScannerUtil.nextInt(scanner, message, min, max);
}
public static void printInfo(int id, String name, int korean, int english, int math){
System.out.println("번호 : " + id + "번 이름 : " + name);
System.out.printf("국어 : %d점 영어 : %d점 수학 : %d점\n", korean, english, math);
System.out.printf("총점 : %d점 평균 %f점\n", calculateSum(korean, english, math), calculateAverage(korean, english, math));
}
public static int calculateSum(int korean, int english, int math){
return korean + english + math;
}
public static double calculateAverage(int korean, int english, int math){
final int SUBJECT_SIZE = 3; // 상수 final
return calculateSum(korean, english, math) / (double)SUBJECT_SIZE;
}
}
'JX405기_비트 > Java' 카테고리의 다른 글
Day02-2 사원관리 프로그램 작성하기 ScannerUtil사용 (0) | 2023.01.12 |
---|---|
Day02-1 클래스 학습 (0) | 2023.01.12 |
Day01-3 메소드 예제 풀어보기 (1) (0) | 2023.01.09 |
Day01-2 메소드 공부하기 (0) | 2023.01.09 |
Day01-1 별 찍기 JAVA Coding (0) | 2023.01.09 |