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 + "학점 입니다.");
}
}