JAVA/기본 이론

JAVA | 조건문(if문)

로아다 2023. 2. 23. 13:38
728x90
반응형
if문

- ()안의 값이 true {}안의 코드를 실행하는 문법

- ()안의 값이 false {}안의 코드를 무시한다.

 


 

else if문

- 위의 if문에서 조건이 맞지 않아 실행되지 않았다면 if문처럼 동작한다.

- else if는 여러번 사용할 수 있다.

- else if는 단독으로 사용할 수 없다.

 


 

else문

- 위의 if, else if가 모두 실행되지 않았을 때 {}안의 내용을 무조건 실행

- if문 바로 다음에 사용할 수도 있다.

- if문 없이 단독으로 사용할 수 없다.

- else가 붙어있다면 if문은 최소한 한 번은 반드시 실행된다.

 

import java.util.Scanner;

public class B03_if {
		public static void main(String[] args) {
			System.out.println("프로그램 시작");

			Scanner sc = new Scanner(System.in);

			System.out.print("사과의 개수를 입력 > ");

			int apple = sc.nextInt();

			// true / false를 요구하는 ()안에 비교 연산을 넣어서 사용할 수 있다.
			if (apple > 10) {
			System.out.println("너무 무거워요.");
			} else if (apple < 0) {
			System.out.println("사과가 0보다 작을 수 없습니다.");
			} else if(apple % 2 == 0) {
			System.out.println("사과의 개수가 10개 이하의 짝수입니다.");
			} else {
			System.out.println("위의 조건을 모두 만족하지 못했습니다.");
			}

			
			int num;

			// if문에 else가 있어야 반드시 초기화 된다는 것이 보장된다.
			if (apple == 7) {
			num = 0;
			} else if (apple > 7) {
			num = 0;
			} else if (apple < 7) {
			num = 0;
			} else {
			num = 0;
			}

			System.out.println(num); // else문이 없으면 error
			System.out.println("프로그램 종료");

		}
}

Quiz

국어, 영어, 수학 점수를 차례대로 입력받아 평균 점수를 구한 후에

각 과목의 점수와 등급, 평균 점수를 출력해주는 프로그램을 만들어보세요

1. 90점 이상 A

80점 이상 B

70점 이상 C

60점 이상 D

그 외 F

 

2. 각 과목의 유효한 점수는 0~100점이다.

유효하지 않은 점수가 하나라도 있다면 모든 과목이 F 평균 점수는 0

3. 평균 점수는 소수 둘째 자리에서 반올림하여 저장 후 출력

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Answer

package quiz;

import java.util.Scanner;

public class B03_scoreToGrade {
		/*
			국어, 영어, 수학 점수를 차례대로 입력받아 평균 점수를 구한 후에
			각 과목의 점수와 등급, 평균 점수를 출력해주는 프로그램을 만들어보세요
			
			1.  90점 이상 A
				80점 이상 B
				70점 이상 C
				60점 이상 D
				그 외 F
	
			2. 각 과목의 유효한 점수는 0~100점이다.
			유효하지 않은 점수가 하나라도 있다면 모든 과목이 F 평균 점수는 0점
			
			3. 평균 점수는 소수 둘째 자리에서 반올림하여 저장 후 출력
		 */
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.print("과목 점수를 입력하세요 > ");
		
		int korean = sc.nextInt();
		int english = sc.nextInt();
		int math = sc.nextInt();
		char grade1;
		char grade2;
		char grade3;
		
		if(korean > 100 || korean <= 0) {
			grade1 = 'F';
			grade2 = 'F';
			grade3 = 'F';
			korean = 0;
			english = 0;
			math = 0;
		} else if (korean >= 90) {
			grade1 = 'A';
		} else if (korean >= 80) {
			grade1 = 'B';
		} else if (korean >= 70) {
			grade1 = 'C';
		} else if (korean >= 60) {
			grade1 = 'D';
		} else {
			grade1 = 'F';
		}
		
		if(english > 100 || english <= 0) {
			grade1 = 'F';
			grade2 = 'F';
			grade3 = 'F';
			korean = 0;
			english = 0;
			math = 0;
		} else if (english >= 90) {
			grade2 = 'A';
		} else if (english >= 80) {
			grade2 = 'B';
		} else if (english >= 70) {
			grade2 = 'C';
		} else if (english >= 60) {
			grade2 = 'D';
		} else {
			grade2 = 'F';
		}		

		
		if(math > 100 || math <= 0) {
			grade1 = 'F';
			grade2 = 'F';
			grade3 = 'F';
			math = 0;
			korean = 0;
			english = 0;
		} else if (math >= 90) {
			grade3 = 'A';
		} else if (math >= 80) {
			grade3 = 'B';
		} else if (math >= 70) {
			grade3 = 'C';
		} else if (math >= 60) {
			grade3 = 'D';
		} else {
			grade3 = 'F';
		}		
		
		System.out.printf("국어 : %d, 등급 : %c \n", korean, grade1);	
		System.out.printf("영어 : %d, 등급 : %c \n", english, grade2);
		System.out.printf("수학 : %d, 등급 : %c \n", math, grade3);
		System.out.printf("평균 점수 : %.2f ", (korean + english + math)/3.0);
	}
}

 

728x90
반응형