JAVA 3강_2_if~else if 문, 문제

열라뽕따히·2024년 1월 28일

JAVA

목록 보기
13/79

다중 if ~ else if 문 : 분기문 (조건문)

  • 여러 개의 조건 중에 맞는 조건에 해당하는 문장을 실행하는 구조
  • 형식 :
if(조건식1) {
           조건식1이 참인 경우 실행 문장;
         }else if(조건식2) {
           조건식1이 거짓이고, 조건식2가 참인 경우 실행 문장;
         }else if(조건식3) {
           조건식1, 2가 거짓이고 조건식3이 참인 경우 실행 문장;
         }else {
           조건식1, 조건식2, 조건식3이 모두 거짓인 경우 실행 문장;
         }




============================코드============================

Scanner sc = new Scanner(System.in);
		
	System.out.print("1 ~ 3 사이의 숫자 중에서 하나를 입력하세요. : ");
		
	int num = sc.nextInt();
		
		if(num == 1) {
			System.out.println("입력 받은 숫자는 1 입니다.");
		}else if(num == 2) {
			System.out.println("입력 받은 숫자는 2 입니다.");
		}else if(num == 3) {
			System.out.println("입력 받은 숫자는 3 입니다.");
		}else {
			System.out.println("1 ~ 3 이외의 숫자가 입력 되었습니다.");
		}
		sc.close();

============================실행============================








[문제] 이름과 국어점수, 영어점수, 자바점수를 키보드로 입력을 받아서 아래와 같이 성적을 화면에 출력해 보세요

이 름 : 0 0 0
국어점수 : 00 점
영어점수 : 00 점
자바점수 : 00 점
총 점 : 000 점
평 균 : 00.00 점
학 점 : 0 학점

학점 기준 : A학점(90점 이상)
: B학점(80 ~ 89점)
: C학점(70 ~ 79점)
: D학점(60 ~ 69점)
: F학점(59점 이하)




============================코드============================

Scanner sc = new Scanner(System.in);
		
		System.out.print("이  름 : ");
		String name = sc.next();
		
		System.out.print("국어점수 : " );
		int ko = sc.nextInt();
		
		System.out.print("영어점수 : ");
		int en = sc.nextInt();
		
		System.out.print("자바점수 : ");
		int jv= sc.nextInt();
		
		int tot = ko + en + jv;
		System.out.println("총 점 : " + tot + "점");
		
		
		double avg = tot / 3.0;
		System.out.printf("평 균 : %.2f \n", avg);
		
		if(avg >= 90) {
			System.out.println("학 점 : A학점");
		}else if(avg >= 80) {
			System.out.println("학 점 : B학점");
		}else if(avg >= 70) {
			System.out.println("학 점 : C학점");
		}else if(avg >= 60) {
			System.out.println("학 점 : D학점");
		}else {
			System.out.println("학 점 : F학점");
		}
			
		sc.close();

============================실행============================






다른 방법으로 풀어보자!




============================코드============================

Scanner sc = new Scanner(System.in);
		
		System.out.print("이름을 입력하세요. : ");
		String name = sc.next();
		
	// System.out.println("이름 : " + name); --> 공백으로 입력할 시 공백 이전까지만 출력 됨
	// 공백이 꼭 필요한 경우 joption 방식으로 키보드 입력 방법을 사용하면 됨
		
		System.out.print("국어 점수 입력 : ");
		int kor = sc.nextInt();
		
		System.out.print("영어 점수 입력 : ");
		int eng = sc.nextInt();
		
		System.out.print("자바 점수 입력 : ");
		int java = sc.nextInt();
		
		System.out.println();
		
	//System.out.println("총 점 : " + (kor + eng + java));
	//System.out.println("평 균 : " + ((kor + eng + java) / 3.0));
	//==> 이와 같은 경우로 할 시 코드가 넘 길어짐! 그래서 변수를 주는 것이 좋음
		
	// 3. 총점의 변수를 만들고 총점을 구하자
		int total = kor + eng + java;
		
	// 4. 평균을 구하자
	//int avg = total / 3;    --> 입력 시 소수점 이하가 나오지 않게 됨
		double avg = total / 3.0;    
	// double avg = double(total) / 3; (or) float avg = total / 3.0f; 도 가능
		
	// 5. 학점을 구하자 --> 학점의 평균을 가지고 구함
		String grade;
		
		if(avg >= 90) {
			grade = "A학점";
		}else if(avg >= 80) { //else if(avg >= 80 && avg <= 89) 도 가능하긴 함 근데 굳이!
			grade = "B학점";
		}else if(avg >= 70) {
			grade = "C학점";
		}else if(avg >= 60) {
			grade = "D학점";
		}else {
			grade = "F학점";
		}
		
	// 6. 성적 처리한 결과를 화면에 보여주자
		System.out.println("이  름 : " + name);
		System.out.println("국어점수 : " + kor + " 점");
		System.out.println("영어점수 : " + eng + " 점");
		System.out.println("자바점수 : " + java + " 점");
		System.out.println("총  점 : " + total + " 점");
		System.out.printf("평  균 : %.2f \n" , avg);
		System.out.println("학  점 : " + grade);
		
		
		sc.close();

============================실행============================

***소수점 이하의 값을 구할 시 형변환을 해줘야 하는 것 명심하자!

0개의 댓글