Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

Everything has an expiration date

040 - Java switch문을 사용하여 국어, 영어, 수학 점수의 총점과 등급을 출력하는 프로그램 본문

[Java]/Program source (java)

040 - Java switch문을 사용하여 국어, 영어, 수학 점수의 총점과 등급을 출력하는 프로그램

Jelly-fish 2023. 8. 30. 21:36
/*=========================================
	■■■ 실행 흐름의 컨트롤(제어문) ■■■
	- switch 문
===========================================*/


/*
○ 다중 선택문이라 하며, switch 문 다음의 수식 값에 따라
   실행 순서를 여러 방향으로 분기할 때 사용하는 문장이다.

 ○ 형식 및 구조
	switch(수식)
	{
		case 상수1 : 문장1; [break;]
		case 상수2 : 문장2; [break;]
			   :
		[ defalut  : 문장n+1; [break;]]
	
	
	}

	switch 문의 『수식』과 case 의 『상수』는
	byte, short, int, long 형이어야 한다. (double, float 지원 안함 -> avg 정수로 선언한 이유)
	(+ 문자 타입 char)
	(+ 문자열 String)

	▶ case 문 뒤에 『break;』 가 없는 형태인 경우
       다음 case 문의 문장을 계속해서(이어서) 수행하게 된다. (→ 기본 모델)
	
	▶『break;』가 존재할 경우
	   해당 지점에서 수행을 멈춘 후 switch 문을 빠져나간다.  (→ 일반 모델)



*/

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;


public class Test040
{
	public static void main(String[] args) throws IOException
	{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		String name;			//-- 이름
		int kor, eng, mat, tot;	//-- 국어, 영어, 수학, 총점
		//double avg;
		int avg;				//-- 평균 (switch의 수식값에서 double, float 지원 안 함.)
		//char grade;				//-- 등급
		char grade = 'F';

		System.out.print("이름 입력 : ");
		name = br.readLine();


		System.out.print("국어점수 입력 : ");
		kor = Integer.parseInt(br.readLine());
		System.out.print("영어점수 입력 : ");
		eng = Integer.parseInt(br.readLine());
		System.out.print("수학점수 입력 : ");
		mat = Integer.parseInt(br.readLine());


		tot = kor + eng + mat;
		//avg = tot / 3.0;
		avg = tot / 3;

		/*
		if(avg >= 90)
			grade = 'A';
		else if(avg >= 80)
			grade = 'B';
		else if(avg >= 70)
			grade = 'C';
		else if(avg >= 60)
			grade = 'D';
		else
			grade = 'F';
		*/

		/*
		switch (avg)
		{
			case 100: grade = 'A'; break;
			case 99: grade = 'A'; break;
			case 98: grade = 'A'; break;
			case 97: grade = 'A'; break;
			//			:
			case 0: grade = 'F'; break;
		
		}
		*/

		/*
		switch (avg/10)
		{
			case 10: grade = 'A'; break;
			case 9 : grade = 'A'; break;
			case 8 : grade = 'B'; break;
			case 7 : grade = 'C'; break;
			case 6 : grade = 'D'; break;
			case 5 : grade = 'F'; break;
			case 4 : grade = 'F'; break;
			case 3 : grade = 'F'; break;
			case 2 : grade = 'F'; break;
			case 1 : grade = 'F'; break;
			case 0 : grade = 'F'; break;
		
		}
		*/
		
		/*
		switch (avg/10)
		{
			case 10: grade = 'A'; break;
			case 9 : grade = 'A'; break;
			case 8 : grade = 'B'; break;
			case 7 : grade = 'C'; break;
			case 6 : grade = 'D'; break;
			//default : grade = 'F'; break;
		
		}
		
		//System.out.println("grade : " + grade);
		*/


		switch (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'; break;
		}

		// 결과 출력
		System.out.println();
		System.out.printf(">> 당신의 이름은 %s 입니다.\n", name);
		System.out.printf(">> 총점은 %d, 평균은 %d 입니다.\n", tot, avg);
		System.out.printf(">> 등급은 %c 입니다.\n", grade);


	}
}

// 실행 결과

/*
이름 입력 : 강혜성
국어점수 입력 : 90
영어점수 입력 : 80
수학점수 입력 : 70

>> 당신의 이름은 강혜성 입니다.
>> 총점은 240, 평균은 80 입니다.
>> 등급은 B 입니다.
계속하려면 아무 키나 누르십시오 . . .
*/