[Java14] 새로운 Switch문

2024. 9. 13. 20:52·Java

 

 

  Java에서 switch문은 if문과 달리 특정 값일 때 동작하는 문법이다. 

  

 

 


 

 

기존 switch문을 자세히 보자.

public class OldSwitch {
    public static void main(String[] args) {
        String phoneName = "Apple";
        switch (phoneName) {
            case "Apple":
                System.out.println("애플쓰군요!");
                break;
            case "SamSung":
                System.out.println("SAMSUNG쓰군요!");
                break;
            case "LG":
                System.out.println("LG쓰군요!");
                break;
            default:
                System.out.println("어떤 폰 쓰시나요?>");
                break;
        }
    }
}

 

  해당 코드는 if문으로만 작성할 수 있는 코드이다. switch문은 특정 값일 때, 특정 코드가 동작하기 위해 고안된 코드인데. if문으로 작성한 코드랑 가독성이 비슷해 보인다.

 

 

public class OldSwitch {
    public static void main(String[] args) {
        String phoneName = "PIXEL";
        if (phoneName == "Apple") {
            System.out.println("애플쓰시네요?");
        } else if (phoneName == "SamSung") {
            System.out.println("SAMSUNG쓰시네여?");
        } else if (phoneName == "LG") {
            System.out.println("LG쓰시네요?");
        } else {
            System.out.println("어떤 폰 쓰시나요?>");
        }
    }
}

 

  물론 if문 보다 위에 있는 switch문이 더 직관적이고 보기 쉬울 수도 있다, 하지만 많은 프로그래머들은 java의 switch문의 장점이 적다 생각해 JAVA14에서는 더 강력한 switch문이 탄생했다.

 

 

  새로운 switch

 

        String phoneName = "SAMSUNG";
        switch (phoneName){
            case "APPLE" -> System.out.println("애플쓰시네요?");
            case "SAMSUNG" -> System.out.println("삼성쓰시네요?");
            case "LG" -> System.out.println("엘지쓰시네요?");
            default -> System.out.println("어떤거쓰세요?>");
        };

 

  새로운 switch문은 화살표가 첨가되었다. ":" 아닌 ->화살표로 조건에 해당되는 코드를 실행시킨다. 

 

  새로운 switch문은 하나의 case에 값도 여러 개 넣을 수 있다.  

case "PIXEL","XIAOMI" -> System.out.println("??");

  옛날 switch문이었으면, case를 두 개 사용해야 하는 코드이다.

 

 

  무엇보다 break문이 사라져 코드의 길이가 줄어들었다.

 

 


 

 

 새로운 switch문은 다양한 기능이 첨가되었다. 

 

 대표적으로 값을 바로 리턴하여 변수 같은 곳에 대입할 수 있다.

 

        int grade = 2;

        int coupon = switch (grade) {
            case 1 -> 1000;
            case 2 -> 2000;
            case 3 -> 3000;
            default -> 0;
        };
        System.out.println(coupon);

 

  이처럼 coupon 변수를 선언과 동시에 switch문으로 해당 조건에 맞는 값을 변수에 대입할 수 있다.

  여기서 coupon변수는 2000으로 값이 부여되었다.

 

        String userName = "홍길동";
        System.out.println(
                switch (userName) {
                    case "홍길동" -> "Hello my friend";
                    default -> "How are you???";
                }
        );

 

  이런 식으로 메서드에 인자값을 switch문을 통해 특정 조건일 때 특정 인자를 리턴할 수 있다.

 

  하지만 이처럼 값을 리턴할 경우 반드시 default가 있어야 한다.

 


 

 

  yield 키워드

 

  case에 여러 개의 문장을 동작시켜야 하는 경우도 있다. 이럴 땐 새로운 switch문에서 {} 중괄호 안에 여러 문장을 넣는다.

 

 

        String item= "";

        int price = switch (item){
            case "TV"-> 500_000;
            case "air fryer" -> 80_000;
            default -> {
                int emptyCheck = item.length();
                checkedEmpty(emptyCheck);
                yield emptyCheck;
            }
        };
        System.out.println(price);
        
    static void checkedEmpty(int emptyCheck){
        if(emptyCheck==0){
            System.out.println("담은 물건이 없습니다.");
        }
    }

 

 

 

 

대표사진 출처

https://www.flaticon.com/kr/free-icon/java_226777

 

'Java' 카테고리의 다른 글

[Java] 배열을 쉽게 출력하기!  (1) 2024.09.16
[Java의 정석] Chapter4 연습문제  (3) 2024.09.13
[Java] 윈도우 cmd로 Java 컴파일하기  (0) 2024.08.31
[Java] JAVA의 정석 기초편 챕터3 문제  (0) 2024.08.30
[Java] 문자열의 비교 (equals override)  (0) 2024.08.30
'Java' 카테고리의 다른 글
  • [Java] 배열을 쉽게 출력하기!
  • [Java의 정석] Chapter4 연습문제
  • [Java] 윈도우 cmd로 Java 컴파일하기
  • [Java] JAVA의 정석 기초편 챕터3 문제
oneH
oneH
  • oneH
    Hello WeonHyeok!
    oneH
  • 전체
    오늘
    어제
    • 분류 전체보기 (50)
      • CSS (1)
      • Javascript (5)
        • JS자료구조,알고리즘 (1)
      • Java (22)
        • OOP (9)
      • JSP (1)
      • Computer Network (2)
      • 이론 컴퓨터 (2)
      • Project (0)
      • Algorithm&Data Structure (11)
      • 데이터베이스 (3)
      • Spring,SpringBoot (1)
      • Git & GitHub (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    복사
    컴파일
    math
    컴퓨터 네트워크
    OSI7계층
    SQL
    선택자
    Git
    큐
    JavaScript
    Algorithm
    컴퓨터네트워크
    combinators
    이진검색
    오블완
    컴퓨터구조
    스택
    Stack
    MySQL
    자바
    덱
    OOP
    티스토리챌린지
    JS
    object
    선형 큐
    Java
    프로토콜
    폰노이만 아키텍쳐
    Selector
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
oneH
[Java14] 새로운 Switch문
상단으로

티스토리툴바