본문 바로가기
Java_language

자바 예제: 조건문과 switch 문 활용

by 헬로제이콥 2025. 11. 17.

 

💻 자바 예제: 조건문과 switch 문 활용

요청하신 두 가지 프로그램 예제를 자바 코드와 함께 쉽게 설명해 드릴게요. 사용자로부터 입력을 받기 위해 앞서 배운 Scanner를 함께 사용했습니다!


1. 🔹 점수 입력 후 학점 계산 프로그램 (if-else if 활용)

이 프로그램은 사용자가 점수를 입력하면, 그 점수에 따라 'A', 'B', 'C', 'F' 학점을 판별하여 출력합니다. 여러 조건을 순서대로 검사해야 할 때 유용한 if-else if 문을 사용했어요.

📌 프로그램 목표

  • 90점 이상: A학점
  • 80점 이상 90점 미만: B학점
  • 70점 이상 80점 미만: C학점
  • 70점 미만: F학점

📝 자바 코드

Java
 
import java.util.Scanner;

public class GradeCalculator {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // 1. 사용자로부터 점수(정수)를 입력받습니다.
        System.out.print("점수를 입력하세요 (0~100): ");
        int score = scanner.nextInt();
        
        char grade; // 학점을 저장할 변수
        
        // 2. 입력받은 점수에 따라 조건을 검사하여 학점을 결정합니다.
        if (score >= 90) {
            grade = 'A';
        } else if (score >= 80) { // 90점 미만 중에서 80점 이상인 경우
            grade = 'B';
        } else if (score >= 70) { // 80점 미만 중에서 70점 이상인 경우
            grade = 'C';
        } else { // 위의 모든 조건에 해당하지 않는 경우 (70점 미만)
            grade = 'F';
        }
        
        // 3. 결과 출력
        System.out.println("당신의 점수(" + score + "점)는 " + grade + "학점입니다.");
        
        scanner.close();
    }
}

💡 동작 원리 설명

  1. Scanner로 점수를 입력받습니다.
  2. 가장 높은 점수 조건부터 순서대로 검사합니다.
  3. if (score >= 90) : 만약 90점 이상이면 바로 **'A'**로 결정되고, 나머지 조건은 검사하지 않고 끝납니다.
  4. else if (score >= 80) : 만약 90점은 아니지만 (위에서 걸러짐) 80점 이상이라면 **'B'**로 결정됩니다.
  5. 이런 식으로 조건을 내려가면서 점수에 해당하는 학점을 딱 하나만 찾아냅니다.

2. 🔹 switch 문으로 요일 출력 프로그램

이 프로그램은 사용자가 1부터 7까지의 숫자를 입력하면, switch 문을 사용하여 해당 숫자에 맞는 요일 이름을 출력합니다.

📌 프로그램 목표

  • 숫자 1: 월요일
  • 숫자 2: 화요일
  • ...
  • 숫자 7: 일요일
  • 그 외 숫자: "잘못된 입력"

📝 자바 코드

Java
 
import java.util.Scanner;

public class DayOfWeekPrinter {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // 1. 사용자로부터 요일에 해당하는 숫자(1~7)를 입력받습니다.
        System.out.print("요일 숫자(1=월요일, 7=일요일)를 입력하세요: ");
        int dayNum = scanner.nextInt();
        
        String dayName; // 요일 이름을 저장할 변수
        
        // 2. switch 문을 사용하여 숫자에 맞는 요일 이름을 찾습니다.
        switch (dayNum) {
            case 1:
                dayName = "월요일";
                break; // 찾았으니 switch 문을 종료
            case 2:
                dayName = "화요일";
                break;
            case 3:
                dayName = "수요일";
                break;
            case 4:
                dayName = "목요일";
                break;
            case 5:
                dayName = "금요일";
                break;
            case 6:
                dayName = "토요일";
                break;
            case 7:
                dayName = "일요일";
                break;
            default: // 1~7이 아닌 다른 숫자가 입력된 경우
                dayName = "잘못된 입력입니다. (1~7만 가능)";
                break;
        }
        
        // 3. 결과 출력
        System.out.println("입력하신 숫자 " + dayNum + "은(는) " + dayName + "입니다.");
        
        scanner.close();
    }
}

💡 동작 원리 설명

  1. Scanner로 요일 숫자 dayNum을 입력받습니다.
  2. switch (dayNum)은 dayNum의 값을 확인합니다.
  3. dayNum의 값과 똑같은 **case**를 찾아 그 안에 있는 코드를 실행합니다.
  4. 예를 들어, dayNum이 4라면 case 4:로 이동하여 dayName = "목요일";을 실행하고, **break;**를 만나 switch 문을 빠져나옵니다.
  5. 만약 1~7이 아닌 숫자를 입력하면, **default:**의 코드가 실행됩니다.