Dev/Java

Java - 조건문 ( Else If )

surimi🍥 2020. 8. 11. 11:43
반응형
// 만약 체크해야 하는 조건식이 여러개면
// 즉 결과가 여러개로 나뉩다면
// if-else 구조로는 2개밖에 핸들링 할 수 없기 때문에
// if-else if-else 구조가 나와야 한다.
// 가운데의 else if는 우리가 필요한 만큼 넣어줄 수 있다.
// if-else 처럼
// if-else if 구조에서는 가장 먼저 조건식을 만족하는 코드 블락이 실행된다.

public class Ex04IfElseIf {

	public static void main(String[] args) {

		int age = 8;

		if (age < 6) {

			System.out.println("유아입니다.");

		} else if (age <= 13) {

			System.out.println("어린이 입니다.");

		} else if (age < 18) {

			System.out.println("청소년 입니다.");

		} else {

			System.out.println("성인 입니다.");
			char a = 65;
			System.out.println(a);
		}

		System.out.println("프로그램 종료");
	}

}
더보기

어린이 입니다.
프로그램 종료

package day02;

// 사용자로부터 점수를 입력받아서
// 90~: A
// 80~: B
// 70~: C
// 60~: D
// 0~: F 
// 가 출력되는 프로그램을 작성하세요. 

import java.util.Scanner;

public class Ex05IfElseIf2 {
	
	public static void main(String[] args) {
		
		Scanner scanner = new Scanner(System.in);
		
		System.out.print("점수를 입력해주세요: ");
		
		int score = scanner.nextInt();
		
		// 아래 if else 구조는
		// 잘못된 값을 입력하면 잘못된 결과를 내보낸다.
		// 예)15만점은 A, -450점은 F
		// 항상 우리가 코딩을 할 때 이렇게 잘못된 점수에 대해
		// 대처방안이 필요하다.
		
		System.out.println("데이터 인풋 검증이 되지 않은 if else 구조");
		
		if (score >= 90) {
			System.out.println("A");
		} else if (score >= 80) {
			System.out.println("B");
		} else if (score >= 70) {
			System.out.println("C");
		} else if (score >= 60) {
			System.out.println("D");
		} else {
			System.out.println("F");
		}
		
		System.out.println("------------------------------");

		// 대처방안에는 2가지 방법이 가능한데
		// 먼저 조건식을 빡빡하게 잡는 방법이 있다.
		
		System.out.println("조건식을 빡빡하게 잡는 방법");
		
		if (score >= 90 && score <= 100) {
			System.out.println("A");
		} else if (score >= 80 && score <= 89) {
			System.out.println("B");
		} else if (score >= 70 && score <= 79) {
			System.out.println("C");
		} else if (score >= 60 && score <= 69) {
			System.out.println("D");
		} else if (score >= 0 && score <= 59) {
			System.out.println("F");
		} else {
			System.out.println("잘못 입력하셨습니다.");
		}

		System.out.println("----------------------------");
		

		// 두번째 방법은
		// 중첩 if문(nested if)을 사용해서
		// 데이터가 올바를 때에만 출력하는 if-else 구조를 실행하고
		// 올바르지 않으면 경고 메시지를 출력하는 방법이다.
		// 이 방법의 장점은
		// 데이터가 유효할때에만 if-else가 실행되기 때문에
		// 조건식을 빡빡하게 잡지 않아도 된다.

		// 중첩 if 문의 구조는
		// if 문 코드 블락에
		// 새로운 if문이 들어가는 형식이다.

		System.out.println("데이터 선검증하기");
		
		if (score >= 0 && score <= 100) {
			
			// 올바른 점수이므로 점수 출력 if-else를 적어준다.
			
			if (score >= 90) {
				System.out.println("A");
			} else if (score >= 80) {
				System.out.println("B");
			} else if (score >= 70) {
				System.out.println("C");
			} else if (score >= 60) {
				System.out.println("D");
			} else {
				System.out.println("F");
			}
			
			}
			else {

			// 올바르지 않은 점수이므로 경고 메시지만 출력한다.

			System.out.println("올바르지 않은 점수입니다.");
			
			}

		scanner.close();
	}
}
더보기

점수를 입력해주세요: 1500
데이터 인풋 검증이 되지 않은 if else 구조
A
------------------------------
조건식을 빡빡하게 잡는 방법
잘못 입력하셨습니다.
----------------------------
데이터 선검증하기
올바르지 않은 점수입니다.

 

점수를 입력해주세요: 60
데이터 인풋 검증이 되지 않은 if else 구조
D
------------------------------
조건식을 빡빡하게 잡는 방법
D
----------------------------
데이터 선검증하기
D

 

 

 

반응형