조건문 실습문제

DONI·2021년 8월 27일
0

Java

목록 보기
9/46
post-thumbnail

🚩 실습문제 1

문제 ( 메서드명 : public void practice1( ) { } )

아래 예시와 같이 메뉴를 출력하고 메뉴 번호를 누르면 “OO메뉴입니다“를,
종료 번호를 누르면 “프로그램이 종료됩니다.”를 출력하세요. (OO은 해당 메뉴명)
1,2,3,4,7이 아닌 다른 숫자 입력 시 "잘못 입력하셨습니다" 출력

실행 화면

  1. 입력
  2. 수정
  3. 조회
  4. 삭제
  5. 종료
    메뉴 번호를 입력하세요 : 3
    조회 메뉴입니다.

소스코드

public void practice1() {
	Scanner sc = new Scanner(System.in);
	
	System.out.println("1. 입력");
	System.out.println("2. 수정");
	System.out.println("3. 조회");
	System.out.println("4. 삭제");
	System.out.println("7. 종료");
	
	System.out.print("메뉴 번호를 선택하세요 : ");
	int select = sc.nextInt();
	
	String result = "";
	switch(select) {
	case 1: result = "입력"; break;
	case 2: result = "수정"; break;
	case 3: result = "조회"; break;
	case 4: result = "삭제"; break;
	case 7: System.out.println("프로그램이 종료됩니다"); break;
	default: System.out.println("잘못 입력하셨습니다.");
	}
	switch(select) {
	case 1: case 2: case 3: case 4: 
		System.out.println(result + " 메뉴입니다."); break;
	}
	
	sc.close();
}

🚩 실습문제 2

문제 ( 메서드명 : public void practice2( ) { } )

키보드로 입력 받은 정수가 양수이면서 짝수일 때만 “짝수입니다.”를 출력하고
짝수가 아니면 “홀수입니다.“를 출력하세요.
양수가 아니면 “양수만 입력해주세요.”를 출력하세요.

실행 화면 1

숫자를 한 개 입력하세요 : 8
짝수입니다.

실행 화면 2

숫자를 한 개 입력하세요 : 17
홀수입니다.

실행 화면 3

숫자를 한 개 입력하세요 : -3
양수만 입력해주세요.

소스코드

public void practice2() {
	Scanner sc = new Scanner(System.in);
	
	System.out.print("숫자를 한 개 입력하세요 : ");
	int num = sc.nextInt();
	
	if (num > 0) {
		if (num % 2 == 0)
			System.out.println("짝수입니다.");
		else
			System.out.println("홀수입니다.");
	} else
		System.out.println("양수만 입력해주세요.");
	
	sc.close();
}

🚩 실습문제 3

문제 ( 메서드명 : public void practice3( ) { } )

국어, 영어, 수학 세 과목의 점수를 키보드로 입력 받고 합계와 평균을 계산하고
합계와 평균을 이용하여 합격 / 불합격 처리하는 기능을 구현하세요.
(합격 조건 : 세 과목의 점수가 각각 40점 이상이면서 평균이 60점 이상일 경우)
합격 했을 경우 과목 별 점수와 합계, 평균, “축하합니다, 합격입니다!”를 출력하고
불합격인 경우에는 “불합격입니다.”를 출력하세요.

실행 화면 1

국어점수 : 88
수학점수 : 50
영어점수 : 40
불합격입니다.

실행 화면 2

국어점수 : 88
수학점수 : 50
영어점수 : 45
국어 : 88
수학 : 50
영어 : 45
합계 : 183
평균 : 61.0
축하합니다, 합격입니다!

소스코드

public void practice3() {
	Scanner sc = new Scanner(System.in);
	
	System.out.print("국어점수 : ");
	int kor = sc.nextInt();
	System.out.print("영어점수 : ");
	int eng = sc.nextInt();
	System.out.print("수학점수 : ");
	int math = sc.nextInt();
	
	boolean flag = false;
	int sum = kor + eng + math;
	double avg = sum / 3;
	if (avg >= 60) {
		if (kor >= 40 && eng >= 40 && math >= 40 ) {
			System.out.println("국어 : " + kor);
			System.out.println("영어 : " + eng);
			System.out.println("수학 : " + math);
			System.out.println("합계 : " + sum);
			System.out.printf("평균 : %.1f\n", avg);
			System.out.println("축하합니다, 합격입니다!");
		} else flag = true;
	} else flag = true;
	if (flag) System.out.println("불합격입니다.");
	
	sc.close();
}

🚩 실습문제 4

문제 ( 메서드명 : public void practice4( ) { } )

1~12 사이의 수를 입력 받아 해당 달의 일수를 출력하세요.(2월 윤달은 생각하지 않습니다.)
잘못 입력한 경우 “OO월은 잘못 입력된 달입니다.”를 출력하세요. (switch문 사용)

실행 화면 1

1~12 사이의 정수 입력 : 8
8월은 31일까지 있습니다.

실행 화면 2

1~12 사이의 정수 입력 : 99
99월은 잘못 입력된 달입니다.

소스코드

public void practice4() {
	Scanner sc = new Scanner(System.in);
	
	System.out.print("1~12 사이의 정수 입력 : ");
	int month = sc.nextInt();
	
	int result = 0;
	boolean flag = true;
	switch(month) {
	case 1: case 3: case 5: case 7: case 8: case 10: case 12: 
		result = 31; break;
	case 2: case 4: case 6: case 9: case 11: 
		result = 30; break;
	default: 
		System.out.println(month + "월은 잘못 입력된 달입니다.");
		flag = false;
	}
	if (flag) System.out.println(month + "월은 " + result + "일까지 있습니다.");
	
	sc.close();
}

🚩 실습문제 5

문제 ( 메서드명 : public void practice5( ) { } )

키, 몸무게를 double로 입력 받고 BMI지수를 계산하여 계산 결과에 따라
저체중/정상체중/과체중/비만을 출력하세요.

조건

BMI = 몸무게 / (키(m) * 키(m))
BMI가 18.5미만일 경우 저체중 / 18.5이상 23미만일 경우 정상체중
BMI가 23이상 25미만일 경우 과체중 / 25이상 30미만일 경우 비만
BMI가 30이상일 경우 고도 비만

실행 화면

키(m)를 입력해 주세요 : 1.65
몸무게(kg)를 입력해 주세요 : 58.4
BMI 지수 : 21.45087235996327
정상체중

소스코드

public void practice5() {
	Scanner sc = new Scanner(System.in);
	
	System.out.print("키(m)를 입력해 주세요 : ");
	double m = sc.nextDouble();
	System.out.print("몸무게(kg)를 입력해 주세요 : ");
	double kg = sc.nextDouble();
	
	double bmi = kg / (m * m);
	String result;
	if (bmi < 18.5) result = "저체중";
	else if (bmi < 23) result = "정상체중";
	else if (bmi < 25) result = "과체중";
	else if (bmi < 30) result = "비만";
	else result = "고도비만";
	System.out.println("BMI 지수 : " + bmi);
	System.out.println(result);
	
	sc.close();
}

🚩 실습문제 6

문제 ( 메서드명 : public void practice6( ) { } )

중간고사, 기말고사, 과제점수, 출석횟수를 입력하고 Pass 또는 Fail을 출력하세요.
평가 비율은 중간고사 20%, 기말고사 30%, 과제 30%, 출석 20%로 이루어져 있고
이 때, 출석 횟수는 총 강의 횟수 20회 중에서 출석한 날만 따진 값으로 계산하세요.
70점 이상일 경우 Pass, 70점 미만이거나 전체 강의에 30% 이상 결석 시 Fail을 출력하세요.

실행 화면 1

중간 고사 점수 : 80
기말 고사 점수 : 30
과제 점수 : 60
출석 횟수 : 18
================= 결과 =================
중간 고사 점수(20) : 16.0
기말 고사 점수(30) : 9.0
과제 점수 (30) : 18.0
출석 점수 (20) : 18.0
총점 : 61.0
Fail [점수 미달]

실행 화면 2

중간 고사 점수 : 80
기말 고사 점수 : 90
과제 점수 : 50
출석 횟수 : 15
================= 결과 =================
중간 고사 점수(20) : 16.0
기말 고사 점수(30) : 27.0
과제 점수 (30) : 15.0
출석 점수 (20) : 15.0
총점 : 73.0
Pass

실행 화면 3

중간 고사 점수 : 100
기말 고사 점수 : 80
과제 점수 : 40
출석 횟수 : 10
================= 결과 =================
Fail [출석 횟수 부족 (10/20)]

소스코드

public void practice6() {
	Scanner sc = new Scanner(System.in);
	
	System.out.print("중간 고사 점수 : ");
	double mid = sc.nextDouble() * 0.2;
	System.out.print("기말 고사 점수 : ");
	double fin = sc.nextDouble() * 0.3;
	System.out.print("과제 점수 : ");
	double task = sc.nextDouble() * 0.3;
	System.out.print("출석 횟수 : ");
	double att = sc.nextDouble();
	
	double sum = mid + fin + task + att;
	System.out.println("================= 결과 =================");
	if (att <= (20 * 0.7)) {
		System.out.println("Fail [출석 횟수 부족 (" + (int)att + "/20)]");
	} else {
		System.out.printf("중간 고사 점수(20) : %.1f\n", mid);
		System.out.printf("기말 고사 점수(30) : %.1f\n", fin);
		System.out.printf("과제 점수		(30) : %.1f\n", task);
		System.out.printf("출석 점수		(20) : %.1f\n", att);
		System.out.printf("총점 : %.1f\n", sum);
		if (sum >= 70) System.out.println("Pass");
		else System.out.println("Fail [점수 미달]");
	}
	
	sc.close();
}

🚩 실습문제 7

문제 ( 메서드명 : public void practice7( ) { } )

키보드로 두 개의 정수와 연산 기호를 입력 받아 연산 기호에 맞춰 연산 결과를 출력하세요.

단, 두 개의 정수 모두 0보다 크거나 같을 때만 작동하며
음수가 포함된 경우 “피연산자는 0보다 크거나 같은 수만 입력해주세요.” 출력
잘못된 연산 기호를 입력 했을 시 “잘못 입력하셨습니다.” 출력
피연산자1을 0으로 나눌 경우(/ 또는 %) “0으로 나눌 수 없습니다 출력"

실행 화면 1

피연산자1 입력 : 15
연산자 입력(+,-,*,/,%) : /
피연산자2 입력 : 4
15 / 4 = 3.750000

실행 화면 2

피연산자1 입력 : 15
연산자 입력(+,-,*,/,%) : !
잘못 입력하셨습니다.

실행 화면 3

피연산자1 입력 : 0
연산자 입력(+,-,*,/,%) : /
0은 나눌 수 없습니다.

소스코드

public void practice7() {
	Scanner sc = new Scanner(System.in);
	
	int num1;
	int num2;
	char op;
	double result = 0;
	boolean flag = true;
	
	System.out.print("피연산자1 입력 : ");
	num1 = sc.nextInt();
	
	if (num1 < 0)
		System.out.println("피연산자는 0보다 크거나 같은 수만 입력해주세요.");
	else {
		System.out.print("연산자 입력(+,-,*,/,%) : ");
		op = sc.next().charAt(0);
		
		if (num1 == 0 && op == '/')
			System.out.println("0은 나눌 수 없습니다.");
		else {
			switch(op) {
			case '+': case '-': case '*': case '/': case '%': 
				System.out.print("피연산자2 입력 : ");
				num2 = sc.nextInt();
				
				if (num2 < 0) {
					System.out.println("피연산자는 0보다 크거나 같은 수만 입력해주세요.");
					flag = false;
				}
				else {
					switch(op) {
					case '+': result = num1 + num2; break;
					case '-': result = num1 - num2; break;
					case '*': result = num1 * num2; break;
					case '/':
					if (num2 == 0) flag = false;
					else result = (double)num1 / num2; break;
					case '%':
					if (num2 == 0) flag = false;
					else result = num1 % num2; break;
					}
					
					if (flag)
						System.out.printf("%d %c %d = %f\n", num1, op, num2, result);
					else
						System.out.println("0으로 나눌 수 없습니다.");
					break;
				}
			default: System.out.println("잘못 입력하셨습니다.");
			}
		}
	}
	
	sc.close();
}
profile
틀린 내용이 있다면 댓글 또는 이메일로 알려주세요 ❤ꔛ❜

0개의 댓글