728x90
반응형

1. if문 이용

2. switch-case문 이용

 

문제

<입력값:출력>
90~100:A
80~89:B
70~79:C
60~69:D
0~59:F
  • 점수를 입력 받아서 학점을 구하시오.
  • 사용자가 직접 점수를 입력한다. (import java.util.Scanner; 이용)
  • 입력한 값이 100보다 크거나 0보다 작을 때는 결과가 출력되지 않는다.
  • 90을 입력하면 A값이 출력된다. 
  • 경곗값 분석을 이용해 테스트를 해 보아라.

 

 

1. if문 이용

		Scanner scan = new Scanner(System.in);
		int num=0;
		char grade=' '; //변수선언 및 초기화. 학점을 넣을 변수

		System.out.print("점수를 입력하세요 >> ");
		num = scan.nextInt();

		//grade 값 삽입
		if(num>100 || num<0) //100보다 크거나 0보다 작은 숫자를 입력했을 때
			System.out.println("점수를 잘못 입력하셨습니다.\n0~100 사이의 점수를 다시 입력해주세요.");
		else{	//100~1 사이의 숫자
			if(num >= 90){	//이미 100이하의 값임을 확인했기 때문에 90이상인 값을 구한다.
				grade='A';
			}
			else if(num >= 80){	//위의 조건을 만족하지 못해서 다음 조건문으로 내려왔기 때문에 이미 90이상이 아닌 것을 확인했다. 즉, 89~80까지의 값
				grade='B';
			}
			else if(num >= 70){	//79~70
				grade='C';
			}
			else if(num >= 60){	//69~60
				grade='D';
			}
			else{	//나머지 값. 59~0
				grade='F';
			}
			System.out.printf("학점 : %c",grade);	//출력
		}//else_end
		

		scan.close(); //close를 해주지 않아도 오류가 나지는 않으나, OS 자원을 되돌리기 위해 close()

 

 

 

2. switch-case문 이용

		Scanner scan = new Scanner(System.in);
		int score=0;
		char grade=' ';

		System.out.printf("점수를 입력하시오 >> ");
		score = scan.nextInt();

		if(score>100 || score<0)
			System.out.println("점수를 잘못 입력하셨습니다.\n0~100 사이의 점수를 다시 입력해주세요.");
		else{
			switch(score/10){ //몫을 구하는 switch문
			case 10:	//100 (100/10 = 10)
			case 9:		//99~90 (99/9 = 9)
				grade='A';	//100~90을 입력받았을 때 출력
				break;	//switch문 탈출
			case 8:
				grade='B';
				break;
			case 7:
				grade='C';
				break;
			case 6: 
				grade='D';
				break;
			default:
				grade='F';
			}
			System.out.printf("학점 : %c", grade); //출력
		}//else_end

		scan.close();

 

 

 

출력 결과

점수를 입력하세요 >> 101
점수를 잘못 입력하셨습니다.
0~100 사이의 점수를 다시 입력해주세요.
점수를 입력하세요 >> -1
점수를 잘못 입력하셨습니다.
0~100 사이의 점수를 다시 입력해주세요.
점수를 입력하시오 >> 100
학점 : A
점수를 입력하세요 >> 90
학점 : A
점수를 입력하세요 >> 59
학점 : F
점수를 입력하세요 >> 0
학점 : F

 

 

 

 

 

 

 

728x90
반응형

+ Recent posts