Java 예외처리 try catch 사용 않하고

조회수 457회

public class Student { public int studentNumber; // 학번 public int kor; // 국어 public int eng; // 영어 public int math; // 수학 public double avg; public int total; public Student(int studentNumber) { // Student class 생성자 this.studentNumber = studentNumber; } public void pointInsert(Scanner sc) { // 학생 성적을 입력 받는 메소드 System.out.println(studentNumber + "번째학생입니다."); System.out.print("국어: "); kor = Integer.parseInt(sc.nextLine()); System.out.print("영어: "); eng = Integer.parseInt(sc.nextLine()); System.out.print("수학: "); math = Integer.parseInt(sc.nextLine()); } public void printsumAvr() { // 총점과 평균을 구하고 총 결과 출력 total = (kor + eng + math); avg = (total * 100 / 3 / 100.0); System.out.print(studentNumber + "\t" + kor + "\t" + eng + "\t" + math + "\t"); System.out.print(total + "\t" + avg); System.out.println(); } }

---‐‐------------- public class Main { public static void main(String[] args) { String[] subject = { "학번", "국어", "영어", "수학", "총점", "평균" }; Scanner sc = new Scanner(System.in); System.out.print("학생수를 입력하세요: "); int number = Integer.parseInt(sc.nextLine()); // 관리할 학생 수를 입력 받는다. Student[] student = new Student[number]; // 입력 받은 학생 수 만큼 Student 객체를 student 이름으로 배열 생성 for (int i = 0; i < number; i++) { // 번호 부여 student[i] = new Student(i + 1); } System.out.println(); System.out.println("점수 입력을 시작합니다."); System.out.println(); for (int i = 0; i < student.length; i++) { // 점수 입력 student[i].pointInsert(sc); System.out.println(); } System.out.print("번호" + "\t" + "국어" + "\t" + "영어" + "\t" + "수학" + "\t" + "총점" + "\t" + "평균" + "\t" + "\n"); for (int i = 0; i < student.length; i++) { // 점수 입력 student[i].printsumAvr(); } } }

코딩을 이렇게 했는데 예외 처리 100 를 if else 로 한다면 어떻게 적어야하나요?

  • (•́ ✖ •̀)
    알 수 없는 사용자
  • 예외처리가 들어갈 부분이 어디인가요? HIAOAIH 2020.8.18 15:58
  • 학생수를 입력에서 숫자 1~100까지만 되도록 하기 / 점수입력 1~100까지 되도록 하는겁니다. 알 수 없는 사용자 2020.8.18 16:29

1 답변

  • 메소드를 하나 만들어서 반복 시도 및 조건처리하도록 하면 재사용하기 좋습니다.

    public void pointInsert(Scanner sc) { // 학생 성적을 입력 받는 메소드 
        System.out.println(studentNumber + "번째학생입니다."); 
        System.out.print("국어: "); 
        kor = tryValue(sc);  
        System.out.print("영어: "); 
        eng = tryValue(sc);  
        System.out.print("수학: "); 
        math = tryValue(sc); 
    }
    public int tryValue(Scanner sc){
        while(true){
            int temp = Integer.parseInt(sc.nextLine());
            if (temp<1 || temp>100){
                System.out.println("잘못된 값입니다. 1~100 사이의 값을 입력해주세요.");
            }else{
                return temp;
            }
        }
    }
    
    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)