[Java 5-6 InputCheckApp] 키보드로 점수를 입력받아 학점을 계산하여 출력하는 프로그램

임승현·2022년 10월 3일

Java

목록 보기
15/126
package basic;

import java.util.Scanner;

키보드로 점수를 입력받아 학점을 계산하여 출력하는 프로그램
// => 100~90 : A, 89~80 : B, 79~70 : C, 69~60 : D, 59~0 : F
// => 키보드로 입력된 점수가 0~100 범위의 정수값이 아닌 경우 에러메세지 출력 후 재입력되도록 작성
public class InputCheckApp {
	public static void main(String[] args) {
		Scanner scanner=new Scanner(System.in);
		
		/*
		System.out.print("점수 입력[0~100] >> ");
		int score=scanner.nextInt();
		
		if(score<0 || score>100) {//입력값이 비정상적인 값인 경우
			System.out.println("[에러]점수는 0~100 범위의 정수값만 입력 가능합니다.");
			System.exit(0);//프로그램 종료
		}
		*/
		
		/*
		//반복문의 조건식이 참(true)이 되도록 변수에 비정상적인 정수값을 초기값으로 저장
		int score=-1;
		while(score<0 || score>100) {//입력값이 비정상적인 경우 반복 실행
			System.out.print("점수 입력[0~100] >> ");
			score=scanner.nextInt();
			if(score<0 || score>100) {
				System.out.println("[에러]점수는 0~100 범위의 정수값만 입력 가능합니다.");
			}
		}
		*/
		
		/*
		//do~while 구문을 사용할 경우 변수에 비정상적인 초기값 저장 불필요
		int score;
		do {
			System.out.print("점수 입력[0~100] >> ");
			score=scanner.nextInt();
			if(score<0 || score>100) {
				System.out.println("[에러]점수는 0~100 범위의 정수값만 입력 가능합니다.");
			}
		} while(score<0 || score>100);//입력값이 비정상적인 경우 반복 실행
		*/
		
		int score;
		while(true) {//조건식 대신 [true]를 설정한 경우 무조건 참으로 무한루프 발생 
			System.out.print("점수 입력[0~100] >> ");
			score=scanner.nextInt();
			if(score>=0 && score<=100) break;//입력값이 정상적인 경우 반복문 종료
			//비정상적인 값이 입력된 경우 에러메세지 출력 후 반복문 재실행
			System.out.println("[에러]점수는 0~100 범위의 정수값만 입력 가능합니다.");
		}
		
		String grade="";
		switch (score/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("[결과]"+score+"점 >> "+grade+"학점");
		
		scanner.close();
	}
}

0개의 댓글