[Java] Switch문

Yerin Park·2023년 6월 6일
0

Java

목록 보기
2/2
public class ReportTestV3 {
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String name;
		int kor, eng, math;
		int total;
		double avg;
		char grade;
		
		name = "김이름";
		kor = 80;
		eng = 0;
		math = 0;
		
		total = kor + eng + math;
		avg = total / 3.0; // int, double 형 연산을 하면 큰 타입의 연산(double)으로 된다.
		
		avg = (int)(avg*100)/100.0; // 소수점 두 번째 자리까지만 출력할 수 있다.
				
		switch((int)avg/10) {
		case 10: // 100점일 때도 A이다. break; 가 없으므로 case 9: 로 넘어간다.
		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("이름 : "+name+"\r\n"+"국어 점수 : "+kor+"\r\n"+"영어 점수 : "+eng+"\r\n"+"수학 점수 : "+math+"\r\n"+"총점 : "+total+"\r\n"+"평균 : "+avg+"\r\n"+"학점 : "+grade);
	
	}
}

위의 코드에서 주목해야 할 점이 두 가지가 있다.

  1. 평균을 낼 때 total(int형)을 3.0(double형)으로 나누면 큰 타입(double형)으로 연산된다.
    즉 결과는 평균 : 26.66이 나온다.

  2. case 10: 에서 break문이 없으므로 case 9:로 넘어간다. 정보처리기사 문제에서도 가끔 나온 문제 유형이니 숙지하는 것이 좋겠다.

Java 16 버전에서는

case 10, 9:
	grade = 'A'; break;

로도 작성 가능하다.

0개의 댓글