(10101101)173/JAVA2010. 5. 18. 16:37
이 코드는 학교 강의시간에 문제로 나와 사용되었던 코드 입니다. 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 학점 입니다."); } } }
  주석에 간단하게 설명되어 있는대로 이해하시면 됩니다.
Posted by Special Alex