본문 바로가기

자바

성적입력3 [do while문으로 성적 입력, switch문으로 학점 체크]

반응형

국어, 영어, 수학 성적을 입력할 때 0 ~ 100 범위의 데이터만 인정하고 입력된 성적에 대해 총점, 평균, 학점 출력하는 예제
-----------------------
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Score{
    public static void main(String[] ar){
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        char grade = 0;
        float avg = 0.0f;
        String title[] = new String[]{"국어","영어","수학"};
        int lesson[] = new int[title.length];
        int total = 0;

        for(int i = 0;i<title.length;i++){
            do {
                System.out.print(title[i]+" = ");
                try {
                    lesson[i] = Integer.parseInt(br.readLine());
                } catch (NumberFormatException e) {
                    lesson[i] = -1; // 예외 발생시 do while()문을 빠져나가지 않게 -1로 초기화
                    System.out.println("숫자만 입력하세요!!");
                } catch (IOException e) {
                    lesson[i] = -1;// 예외 발생시 do while()문을 빠져나가지 않게 -1로 초기화
                    System.out.println("오류가 있습니다. 다시 입력하세요!!");
                }
            } while (lesson[i] < 0 || lesson[i] > 100);
            total += lesson[i];
        }
        avg = total / 3.0f;

        switch ((int)(avg /10)) {
        case 10:
        case 9:
            grade = 'A';
            break;
        case 8:
            grade = 'B';
            break;
        case 7:
            grade = 'C';
            break;
        case 6:
            grade = 'D';
            break;
        default:
            grade = 'F';
        }
        System.out.println("=======성적보기========");
        System.out.println("총점 = " + total);
        System.out.printf("평균 = %.2f\n", avg);
        System.out.println("학점 = " + grade + "학점");
    }
}

반응형