제어문 - 조건문

현서·2025년 5월 21일
1

자바

목록 보기
5/32
post-thumbnail

조건문(Conditional Statement)

1. if 문

package lesson02;

import java.util.Scanner;

public class Ex01_If1 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("정수를 입력하세요: ");
        int number = sc.nextInt();
        if(number>0){
            System.out.println("양수입니다.");
        }
        sc.close();
    }
}
정수를 입력하세요: 5
양수입니다.

2. if-else문

package lesson02;

import java.util.Scanner;

public class Ex02_If2 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("정수를 입력하세요: ");
        int number = sc.nextInt();
        if(number>=0){
            System.out.println("0또는 양수입니다.");
        }else{
            System.out.println("음수입니다.");
        }
        sc.close();
    }
}
정수를 입력하세요: 10
0또는 양수입니다.

3. if-else if 문

package lesson02;

import java.util.Scanner;

public class Ex03_If3 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("점수를 입력하세요: ");
        int score = sc.nextInt();

        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("재시험 대상입니다.");
        }
    }
}
점수를 입력하세요: 
55
재시험 대상입니다.
package lesson02;

import java.util.Scanner;

public class Ex04_Login {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        String correctId = "apple";
        String correctPw = "1111";

        System.out.print("아이디를 입력하세요: ");
        String inputId = sc.nextLine();

        System.out.print("비밀번호를 입력하세요: ");
        String inputPw = sc.nextLine();

        if(inputId.equals(correctId)&&inputPw.equals(correctPw)){
            System.out.println("로그인 성공!");
        }else{
            System.out.println("아이디 또는 비밀번호가 틀렸습니다.");
        }
        sc.close();
     }
}
아이디를 입력하세요: apple
비밀번호를 입력하세요: 1111
로그인 성공!

4. switch 문

  • switch 괄호 안 -> 검사할 정수, 문자, 문자열 등
  • case -> 검사할 각 값
  • break -> 해당 case 실행 후 switch문을 빠져나가기 위한 키워드
  • default -> 어떤 case에도 해당하지 않을 때 실행 (생략 가능).
package lesson02;

import java.util.Scanner;

public class Ex05_SwitchGrade {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("점수를 입력하세요 (0~100): ");
        int score = sc.nextInt();
        int grade = score / 10;

        switch (grade) {
            case 10:
            case 9:
                System.out.println("A학점입니다.");
                break;
            case 8:
                System.out.println("B학점입니다.");
                break;
            case 7:
                System.out.println("C학점입니다.");
                break;
            case 6:
                System.out.println("D학점입니다.");
                break;
            default:
                System.out.println("재시험 대상입니다.");
        }
        sc.close();
    }
}
점수를 입력하세요 (0~100): 
60
D학점입니다.

5. switch 표현식

자바의 switch 표현식(Switch Expression)
-> 자바 14부터 도입된 새로운 switch 문법.
기존 switch문보다 더 간결하고 안전하며 값을 반환할 수 있는 기능을 제공한다.

기존에는 각 case마다 break를 사용해야 했지만,
switch 표현식에서는 case 값 -> 실행문 형태로 작성하며, 여러 값을 동시에 처리하거나 yield를 사용해 결과를 반환할 수 있다.

-> switch를 if-else처럼 조건 분기뿐만 아니라 하나의 값으로 결과를 처리하는 표현식처럼 사용할 수 있게 되었다.

package lesson02;

import java.util.Scanner;

public class Ex06_SwitchFruit {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("과일 이름을 영어로 입력하세요 (apple, banana, grape): ");
        String fruit = sc.nextLine();

        String result = switch (fruit){
            case "apple" -> "사과";
            case "banana" -> "바나나";
            case "grape" -> "포도";
            case "peach" -> "복숭아";
            case "melon" -> "메론";
            default -> "알 수 없는 과일입니다.";
        };
        System.out.println("입력한 과일의 한글 이름: "+result);
        sc.close();
    }
}
과일 이름을 영어로 입력하세요 (apple, banana, grape): apple
입력한 과일의 한글 이름: 사과
package lesson02;

import java.util.Scanner;

public class Ex07_SwitchMbti {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        System.out.print("당신의 MBTI를 입력하세요 (예: INFP, ENFP, ISTJ 등): ");
        String mbti = sc.nextLine().toUpperCase();  // 대소문자 구분 없이 처리

        switch (mbti) {
            case "INFP" -> {
                System.out.println("🌱 INFP: 이상주의자형");
                System.out.println("조용하고 친절하며, 내면의 세계가 풍부해요.");
                System.out.println("자신만의 가치관을 가지고 살아가는 당신, 멋져요!");
            }
            case "ENFP" -> {
                System.out.println("🔥 ENFP: 재기발랄한 활동가형");
                System.out.println("창의적이고 열정적이며, 주변을 활기차게 만드네요!");
                System.out.println("당신 덕분에 주변이 밝아져요 😄");
            }
            case "INTJ" -> {
                System.out.println("🧠 INTJ: 전략가형");
                System.out.println("분석적이고 독립적인 사고를 가진 당신은 진정한 계획자!");
                System.out.println("미래를 설계하는 당신의 통찰력이 놀라워요.");
            }
            case "ESFP" -> {
                System.out.println("🎉 ESFP: 연예인형");
                System.out.println("항상 즐거움을 추구하고, 사람들과 잘 어울리는 분위기 메이커!");
                System.out.println("당신의 웃음은 모두에게 긍정의 에너지입니다.");
            }
            case "INFJ" -> {
                System.out.println("🌌 INFJ: 옹호자형");
                System.out.println("깊은 직관과 신념을 가진 당신, 조용하지만 강한 리더입니다.");
                System.out.println("세상을 바꾸는 건 당신 같은 사람이에요.");
            }
            default -> {
                System.out.println("😕 아직 해당 MBTI 정보가 없어요.");
                System.out.println("정확히 4자리 영어로 입력해 주세요. 예: INFP, ENTP");
            }
        }

        sc.close();
    }
}
당신의 MBTI를 입력하세요 (예: INFP, ENFP, ISTJ 등): INFP
🌱 INFP: 이상주의자형
조용하고 친절하며, 내면의 세계가 풍부해요.
자신만의 가치관을 가지고 살아가는 당신, 멋져요!
package lesson02;

import java.util.Scanner;

public class Ex08_SwitchYield {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("과일 이름을 영어로 입력하세요 (apple, banana, grape): ");
        String fruit = sc.nextLine().toLowerCase();

        // switch 표현식 + yield 사용
        String result = switch (fruit) {
            case "apple" -> {
                System.out.println("🍎 사과를 선택하셨습니다!");
                yield "사과";
            }
            case "banana" -> {
                System.out.println("🍌 바나나는 에너지가 넘치죠!");
                yield "바나나";
            }
            case "grape" -> {
                System.out.println("🍇 포도는 여름 제철 과일이에요.");
                yield "포도";
            }
            default -> {
                System.out.println("😕 등록되지 않은 과일입니다.");
                yield "알 수 없음";
            }
        };

        System.out.println("한글 이름: " + result);

        sc.close();
    }
}
과일 이름을 영어로 입력하세요 (apple, banana, grape): apple
🍎 사과를 선택하셨습니다!
한글 이름: 사과
profile
The light shines in the darkness.

0개의 댓글