본문 바로가기
Java_language

논리연산자,switch,커피메뉴 예제

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

사용자 입력(Scanner)을 받아 성별이 "Men"이거나 나이가 20살이면 바로 if 문에서 || (OR) 연산자로 비교하여 입장 가능 여부를 판단하는 Java 예제

import java.util.Scanner;

public class DirectORCheck {
    public static void main(String[] args) {
        
        Scanner scanner = new Scanner(System.in);
        
        System.out.println("--- 입장 조건 검사 (Men || 20살) ---");
        
        // 1. 성별 입력 받기
        System.out.print("성별을 입력하세요 (Men): ");
        String gender = scanner.nextLine();
        
        // 2. 나이 입력 받기
        System.out.print("나이를 입력하세요: ");
        int age = scanner.nextInt();
        
        scanner.close();
        
        System.out.println("---------------------------------");
        System.out.println("입력된 정보: 성별=" + gender + ", 나이=" + age);

        // 3. if 문에서 OR (||) 연산자로 두 조건을 바로 비교
        // 조건: 성별이 "Men" 이거나 (||) 나이가 20살 인가?
        if (gender.equalsIgnoreCase("Men") || age == 20) {
            // 이 블록은 둘 중 하나라도 참이면 실행됩니다.
            System.out.println(" 결과: 조건 중 하나를 만족하여 입장이 가능합니다.");
        } else {
            // 이 블록은 두 조건 모두 거짓일 때만 실행됩니다.
            System.out.println(" 결과: Men도 아니고 20살도 아니어서 입장이 불가능합니다.");
        }
    }
}

 

 

if 문에서 && (AND) 논리 연산자로 '성별이 "Men"이고 20살이면 입장' 조건을 바로 비교하는 Java 예제입니다.
이 코드는 성별과 나이 두 가지 조건 모두를 만족해야만 입장이 허용

import java.util.Scanner;

public class DirectANDCheck {
    public static void main(String[] args) {
        
        Scanner scanner = new Scanner(System.in);
        
        System.out.println("--- 입장 조건 검사 (Men && 20살) ---");
        
        // 1. 성별 입력 받기
        System.out.print("성별을 입력하세요 (Men): ");
        String gender = scanner.nextLine();
        
        // 2. 나이 입력 받기
        System.out.print("나이를 입력하세요: ");
        int age = scanner.nextInt();
        
        scanner.close();
        
        System.out.println("---------------------------------");
        System.out.println("입력된 정보: 성별=" + gender + ", 나이=" + age);

        // 3. if 문에서 AND (&&) 연산자로 두 조건을 바로 비교
        // 조건: 성별이 "Men" 이고 (&&) 나이가 20살 인가?
        if (gender.equalsIgnoreCase("Men") && age == 20) {
            // 이 블록은 두 조건 모두 참일 때만 실행됩니다.
            System.out.println(" 결과: Men이고 20살이므로 입장이 가능합니다.");
        } else {
            // 이 블록은 두 조건 중 하나라도 거짓일 때 실행됩니다.
            System.out.println(" 결과: 조건이 모두 충족되지 않아 입장이 불가능합니다.");
        }
    }
}



❓ 삼항 연산자 예제: 성별 판별하기

Java의 삼항 연산자(Ternary Operator) ? :는 if-else 구문을 한 줄로 간결하게 표현할 때 사용합니다. 이 예제는 입력된 숫자(1 또는 2)에 따라 "여자" 또는 "남자"를 출력합니다.

삼항 연산자의 기본 구조는 다음과 같습니다:

                       조건식  ?  참일 때 값 :거짓일 때 값
import java.util.Scanner;

public class TernaryGenderChecker {
    public static void main(String[] args) {
        
        Scanner scanner = new Scanner(System.in);
        
        System.out.print("숫자를 입력하세요 (1:여자, 2:남자): ");
        int inputNumber = scanner.nextInt();
        
        scanner.close();
        
        // 1. 삼항 연산자를 사용하여 성별 판별
        // 조건: inputNumber가 1인가?
        // 참일 때 값: "여자"
        // 거짓일 때 값: "남자" (여기서는 2가 아니어도 남자로 처리됨)
        String gender = (inputNumber == 1) ? "여자" : "남자";
        
        System.out.println("-------------------------");
        System.out.println("입력된 숫자: " + inputNumber);
        System.out.println("판별된 성별: " + gender);
    }
}
 

작동 원리 설명

  1. 사용자가 숫자를 입력하면 inputNumber 변수에 저장됩니다.
  2. String gender = (inputNumber == 1) ? "여자" : "남자";
    • 조건식: inputNumber == 1 입니다.
    • 만약 사용자가 **1**을 입력했다면 조건식은 **true**가 되고, gender 변수에는 **"여자"**가 저장됩니다.
    • 만약 사용자가 2 (또는 다른 숫자)를 입력했다면 조건식은 **false**가 되고, gender 변수에는 **"남자"**가 저장됩니다.

이처럼 삼항 연산자는 단일 조건에 대한 간단한 값 선택을 수행할 때 매우 유용합니다.

 

🗓️ Java switch 문 예제: 요일 출력하기

Java의 switch 문을 사용하여 정수 입력(1부터 6)에 따라 요일(월요일부터 토요일)을 출력하는 예제입니다.

이 예제에서는 사용자로부터 숫자를 입력받아 해당 요일을 판별하고, 해당 요일이 아니거나 범위를 벗어난 숫자가 입력되면 기본값(default)을 출력합니다.

import java.util.Scanner;

public class DayOfWeekSwitcher {
    public static void main(String[] args) {
        
        Scanner scanner = new Scanner(System.in);
        
        System.out.println("--- 요일 판별기 (1:월요일 ~ 6:토요일) ---");
        System.out.print("1부터 7까지의 숫자를 입력하세요: ");
        int day = scanner.nextInt();
        
        scanner.close();
        
        String dayName;

        // switch 문 시작: day 변수의 값에 따라 case 블록 실행
        switch (day) {
            case 1:
                dayName = "월요일 (Monday)";
                break; // case 1이 참이면 여기서 switch 문을 빠져나감
            case 2:
                dayName = "화요일 (Tuesday)";
                break;
            case 3:
                dayName = "수요일 (Wednesday)";
                break;
            case 4:
                dayName = "목요일 (Thursday)";
                break;
            case 5:
                dayName = "금요일 (Friday)";
                break;
            case 6:
                dayName = "토요일 (Saturday)";
                break;
            case 7:
                dayName = "일요일 (Sunday)";
                break;
            default:
                // 위에 나열된 어떤 case에도 해당하지 않을 때 실행
                dayName = "잘못된 입력입니다. 1에서 7 사이의 숫자를 입력하세요.";
                break;
        }

        System.out.println("------------------------------------");
        System.out.println("입력된 숫자: " + day);
        System.out.println("결과 요일: " + dayName);
    }
}

 

☕ switch 문 예제: 커피 메뉴 주문하기

Java의 switch 문을 사용하여 고객이 입력한 메뉴 번호에 따라 주문된 커피 메뉴와 가격을 출력하는 예제입니다.

💻 Java 코드 예시

import java.util.Scanner;

public class CoffeeOrder {
    public static void main(String[] args) {
        
        Scanner scanner = new Scanner(System.in);
        
        System.out.println("--- 커피 메뉴 주문 ---");
        System.out.println("1. 아메리카노 (4000원)");
        System.out.println("2. 카페 라떼 (4500원)");
        System.out.println("3. 카푸치노 (4500원)");
        System.out.println("4. 에스프레소 (3500원)");
        System.out.println("----------------------");
        System.out.print("메뉴 번호를 입력하세요: ");
        
        // 사용자로부터 메뉴 번호(정수) 입력 받기
        int menuChoice = scanner.nextInt();
        
        scanner.close();
        
        String menuName;
        int price;

        // switch 문을 사용하여 메뉴 번호에 따라 메뉴 이름과 가격 결정
        switch (menuChoice) {
            case 1:
                menuName = "아메리카노";
                price = 4000;
                break;
            case 2:
                menuName = "카페 라떼";
                price = 4500;
                break;
            case 3:
                menuName = "카푸치노";
                price = 4500;
                break;
            case 4:
                menuName = "에스프레소";
                price = 3500;
                break;
            default:
                // 1~4번 외의 번호를 입력했을 경우
                menuName = "선택 불가 메뉴";
                price = 0;
                break;
        }

        System.out.println("----------------------");
        
        if (price > 0) {
            System.out.println("✅ 주문 확인: " + **menuName** + "를(을) 선택하셨습니다.");
            System.out.println("💰 결제 금액: " + **price** + "원 입니다.");
        } else {
            System.out.println("❌ 오류: 유효하지 않은 메뉴 번호입니다.");
        }
    }
}

🔑 주요 설명

  • switch (menuChoice): 사용자가 입력한 menuChoice 변수의 값을 확인합니다.
  • case 1: ~ case 4:: 입력된 값이 해당하는 case의 코드를 실행하여 menuName과 price를 설정합니다.
  • break;: 필수적으로 사용됩니다. 이 구문이 없으면 선택된 case 아래의 모든 case 코드가 연속적으로 실행되는 Fall-through 현상이 발생합니다.
  • default:: 메뉴에 없는 번호가 입력되었을 때 실행됩니다. 여기서는 menuName을 "선택 불가 메뉴"로, price를 0으로 설정했습니다.
  • 결과 출력: switch 문을 통해 결정된 menuName과 price 값을 마지막 if 문에서 출력하여 최종 주문 결과를 보여줍니다.