Dev/Java

Java 예제

surimi🍥 2020. 8. 11. 16:54
반응형
//사용자로부터

//이름, 나이, 국어, 영어, 수학 점수를 입력 받아서
//출력하는 프로그램을 작성하세요

//조건1. 사용자가 메뉴에서 종료를 누르기전까지 계속 돌아갑니다.

//조건2. 만약 사용자가 아무런 데이터도 입력하지 않았다면 "입력된 데이터가 없습니다"
//      라고 출력되게 만드세요.
//      조건2는 국어 영어 수학 중 한개의 점수를 올바르지 않은 점수로 초기화하면
//      구현하기 쉽습니다.

//조건3. 만약 사용자가 입력한 점수가 잘못된 형식일 경우 올바른 형태의 점수가 들어올때까지
//     계속 입력을 받도록 하세요

//조건4. 출력할 때에는
//      이름: ~~~ 나이:016세
//      국어: 080점 영어: 079점 수학: 079점
//      총점: 238점 평균: 79.33점
//     으로 출력되게 printf를 만드세요


import java.util.Scanner;

public class Ex17GradeBook {
	final static int SUBJECT_NUMBERS = 3;

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);

		// 이름, 나이, 국어, 영어, 수학은 여기서 선언과 초기화를 해야지만
		// while문에서 입력된 값이 유지가 된다.
		String name = new String("");
		int age = 0;
		int korean = -1;
		int english = 0;
		int math = 0;

		while (true) {
			System.out.println("1. 입력 2. 출력 3. 종료");
			System.out.print("> ");
			int choice = scanner.nextInt();

			if (choice == 1) {
				// 입력하는 코드 구현
				scanner.nextLine();
				System.out.print("이름: ");
				name = scanner.nextLine();

				System.out.print("나이: ");
				age = scanner.nextInt();

				System.out.print("국어: ");
				korean = scanner.nextInt();

				while (korean < 0 || korean > 100) {
					System.out.println("잘못입력하셨습니다.");
					System.out.print("국어: ");
					korean = scanner.nextInt();
				}

				System.out.print("영어: ");
				english = scanner.nextInt();

				while (english < 0 || english > 100) {
					System.out.println("잘못입력하셨습니다.");
					System.out.print("영어: ");
					english = scanner.nextInt();
				}

				System.out.print("수학: ");
				math = scanner.nextInt();

				while (math < 0 || math > 100) {
					System.out.println("잘못입력하셨습니다.");
					System.out.print("수학: ");
					math = scanner.nextInt();
				}

			} else if (choice == 2) {
				// 출력하는 코드 구현
				if (korean == -1) {
					// 아직 아무런 데이터가 입력되지 않았으므로 경고메시지 출력
					System.out.println("아직 입력된 데이터가 없습니다.");
				} else {
					System.out.printf("이름: %s 나이:%03d세\n", name, age);
					System.out.printf("국어: %03d점 영어: %03d점 수학: %03d점\n", korean, english, math);
					int sum = korean + english + math;
					double average = sum / (double) SUBJECT_NUMBERS;
					System.out.printf("총점: %03d점 평균: %.2f점\n", sum, average);
				}

			} else if (choice == 3) {
				System.out.println("사용해주셔서 감사합니다.");
				break;
			}
		}

		scanner.close();
	}
}
반응형

'Dev > Java' 카테고리의 다른 글

Java - 예제 ) 별찍기 02  (0) 2020.08.12
Java - 예제 ) 별찍기 01  (0) 2020.08.12
Java - 무한반복문 ( Infinite Loop )  (0) 2020.08.11
Java - 반복문 ( While Loop )  (0) 2020.08.11
Java - 반복문 ( For Loop 02 )  (0) 2020.08.11