Java

[Java] if ~ else if ~ else 조건문

이뮨01 2025. 7. 5. 15:17

if ~ else if ~ else 조건문에 대해서 배우다.


if문

if 키워드는 한 번만 사용할 수 있다. 다른 조건을 걸고 싶으면 else if를 사용하면 된다. else if는 여러 번 사용할 수 있다.

모든 조건을 만족하지 않는 경우 실행되는 else의 실행문을 실행시킨다. else는 필수가 아니지만 안 쓰는 경우는 거의 없다.

// if 문법
if (조건) {
	실행문;
} else if (조건) {
	실행문;
} else if (조건) {
	실행문;
} else {
	실행문;
}

하나의 체인처럼 연결된 if문은 조건이 true가 나오면 실행문이 실행되고 그 이후의 else if와 else는 실행되지 않고 종료된다.

중첩 if문

if (조건1) {
	if (조건2) {
  		if (조건3) {
 		
 		}
  	} 
}

조건 1이 true여야 조건 2가 검사 되고, 조건 2가 true여야 조건 3이 검사 된다.

 

예시 코드

조건문을 사용할 때 유효성 검사를 먼저 해야 다음 조건이 간결해진다.

아래 예시 코드에서 점수가 0 ~ 100 안의 수여야 하는데 만약 그 이외의 범위가 들어오는걸 가장 처음에 검사하지 않는다면 조건문에서 &&를 사용해서 조건이 길어지는 번거로움이 생긴다.

package ch04_control;
import java.util.Scanner;

public class If02 {
	public static void main(String[] args) {
		/*
		 * A: 91 ~ 100
		 * B: 81 ~ 90
		 * C: 71 ~ 80
		 * D: 61 ~ 70
		 * F: 60점 이하 
		 */
		
		// 1. 입력부
		//  - 사용자의 이름과 점수를 입력 받음
		Scanner sc = new Scanner(System.in);  // Scanner 객체 생성
		System.out.print("이름: ");
		String name = sc.nextLine();  // 사용자 이름, 문자열 이외의 값이 들어오면 에러
		System.out.print("점수: ");		
		int score = sc.nextInt();  // 사용자 점수, 정수형 숫자 이외의 값이 들어오면 에러, 숫자 이후의 엔터 \n(개행)가 문자열로 취급되서 nextLine에 들어감
		// nextLine이 밑에 있으면 nextLine()을 한번 더 써야 됨
		
		// System.out.println(name + ", " + score);
		// 2. 처리부
		// 	- 전달받은 점수를 사용하여 학점 계산
		String grade = "";  // 학점
		if (score > 100 || score < 0) {  // 유효성 검사: 범위 이외의 수부터 처리하면 그 다음 조건들이 간단해짐
			System.out.println("올바른 값을 입력하세요.");
		} else if (score >= 91) {  // 유효성 검사로 && score <= 100가 불필요함
			grade = "A";
		} else if (score >= 81) {
			grade = "B";
		} else if (score >= 71) {
			grade = "C";
		} else if (score >= 61) {
			grade = "D";
		} else {
			grade = "F";
		}
		
		System.out.println("grade: " + grade);
	
		// 3. 출력부
		//  - 사용자에게 학점을 출력
		System.out.println(name + " 학생의 점수는 " + score + "점으로");
		System.out.println(grade + "학점 입니다.");
		
	}
}