이 코드는 학교 강의시간에 문제로 나와 사용되었던 코드 입니다. switch문을 다루기 위해 나온 문제 입니다.
// 문제 : 세 과목의 점수를 입력 받아 평균을 구하고 // 학점을 구하는 프로그램을 작성하세요 // - switch문을 사용한다. : 평균을 가지고 A ~ F를 주는 부분에 사용 // - 변수는 총 4개를 선언한다. : // 과목 점수를 저장하는 변수 3개와 평균을 저장하는 변수 1개 // - 성적은 A, B, C, D, F로만 표현하면 된다. import java.io.*; // IOException사용을 위해 선언 public class switch_avg { public static void main(String[] args) throws IOException { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); // 엔터를 자동 처리 및 문자열 입력을 위해 선언 int obji = 0; // 객체지향 점수 int coms = 0; // 컴퓨터 구조 점수 int dats = 0; // 자료구조 점수 float avrg = 0f; // 세 과목의 평균을 저장하는 평점 System.out.println("세 과목의 점수(60 ~ 100점)를 입력해 주세요."); System.out.print("객체지향 I : "); obji = Integer.parseInt(in.readLine()); // 객체지향 I 점수 입력 while(true) {// 무한 루프로써 지정된 값을 입력했는지 확인 if(obji > 100 || obji < 0) {// 입력값이 0보다 작거나 100보다 크면 제입력 요구 System.out.println("입력 범위를 벗어났습니다."); System.out.print("객체지향 I : "); obji = Integer.parseInt(in.readLine()); } else { break; // 입력값이 0보다 크며 100보다 작다면 while문 탈출 // 위의 주석은 밑에 두번의 while문에도 동일하게 적용됩니다. } } System.out.print("컴퓨터 구조 : "); coms = Integer.parseInt(in.readLine()); // 컴퓨터 구조 점수 입력 while(true) { if(coms > 100 || coms < 0) { System.out.println("입력 범위를 벗어났습니다."); System.out.print("컴퓨터 구조 : "); coms = Integer.parseInt(in.readLine()); } else { break; } } System.out.print("자료구조 : "); dats = Integer.parseInt(in.readLine()); // 자료구조 점수 입력 while(true) { if(dats > 100 || dats < 0) { System.out.println("입력 범위를 벗어났습니다."); System.out.print("자료구조 : "); dats = Integer.parseInt(in.readLine()); } else { break; } } avrg = (obji + coms + dats) / 3f; // 입력받은 3개의 갑을 3으로 나눔 이때 float형을 위해 3뒤에 f를 붙임 switch((int)avrg) {// case문에서 int형을 사용하기 때문에 avrg를 강제로 int형으로 형변환 // case 문으로 60 ~ 69까지 D학점 재수강 처리
// case 문으로 70 ~ 74까지 C학점 처리
// case 문으로 75 ~ 79까지 C+학점 처리
// case 문으로 80 ~ 84까지 B학점 처리
// case 문으로 85 ~ 89까지 B+학점 처리
// case 문으로 90 ~ 94점가지 A학점 처리
// case 문으로 95 ~ 100점까지 A+학점 처리
case 60: case 61: case 62: case 63: case 64: case 65: case 66: case 67: case 68: case 69: System.out.print("평점 : " + avrg + "점으로 D 학점 입니다. 재수강 하세요."); break; case 70: case 71: case 72: case 73: case 74: System.out.print("평점 : " + avrg + "점으로 C 학점 입니다."); break; case 75: case 76: case 77: case 78: case 79: System.out.print("평점 : " + avrg + "점으로 C+ 학점 입니다."); break; case 80: case 81: case 82: case 83: case 84: System.out.print("평점 : " + avrg + "점으로 B 학점 입니다."); break; case 85: case 86: case 87: case 88: case 89: System.out.print("평점 : " + avrg + "점으로 B+ 학점 입니다."); break; case 90: case 91: case 92: case 93: case 94: System.out.print("평점 : " + avrg + "점으로 A 학점 입니다."); break; case 95: case 96: case 97: case 98: case 99: case 100: System.out.print("평점 : " + avrg + "점으로 A+ 학점 입니다."); break; default: System.out.print("평점 : " + avrg + "점으로 F 학점 입니다."); } } }
주석에 간단하게 설명되어 있는대로 이해하시면 됩니다.