티스토리 뷰

728x90
반응형

기존의 switch

public class Example {
	
	public static void main(String[] args) {
		Example example = new Example();
		example.switchExample(Day.TUE); // TUE Day
		example.switchExample(Day.SUN); // SUN Day
	}
	
	void switchExample(Day day) {
		switch (day) {
		case MON:
			System.out.println(Day.MON + " Day");
			break;
		case TUE:
			System.out.println(Day.TUE + " Day");
			break;
		case SUN:
			System.out.println(Day.SUN + " Day");
			break;
		}
	}
	
	enum Day {
		MON, TUE, WED, THUR, FRI, SAT, SUN
	}
}

 

Java 13. switch 연산자

  • 화살표 연산자
  • : 대신 -> 를 사용할 수 있습니다.

 

public class MyClass {
	
	public static void main(String[] args) {
		MyClass myclass = new MyClass();
		myclass.switchExample(Day.TUE); // TUE Day
		myclass.switchExample(Day.SUN); // SUN Day
	}
	
	void switchExample(Day day) {
		switch (day) {
			case MON, TUE -> System.out.println(Day.MON + " Day");
			case SUN -> System.out.println(Day.SUN + " Day");
		}
	}
	
	enum Day {
		MON, TUE, WED, THUR, FRI, SAT, SUN
	}
}

 

반환값 받기

public class MyClass {
	
	public static void main(String[] args) {
		MyClass myclass = new MyClass();
		System.out.println(myclass.switchExample(Day.TUE)); // TUE Day
		System.out.println(myclass.switchExample(Day.SUN)); // SUN Day
	}
	
	String switchExample(Day day) {
		 String result = switch (day) {
		 	 case MON, TUE, WED, THUR, FRI -> Day.TUE + " Day";
			 case SAT, SUN -> Day.SUN + " Day";
	    };
	    
	    return result;
	}
	
	enum Day {
		MON, TUE, WED, THUR, FRI, SAT, SUN
	}
}

 

yield 사용

  • yield 기능을 사용하여 값을 리턴할 수도 있습니다.
public class MyClass {
	
	public static void main(String[] args) {
		int a = 10;
        int result = switch (a)  {
            case 0, 1 -> {
                yield 1;
            }
            case 2 -> {
                yield 2;
            }
            case 3, 4, 5 -> {
                yield 3;
            }
            default -> {
                yield -1;
            }
        };
	    
	    System.out.println(result);
	}
}
728x90
반응형

'JAVA > JAVA기본' 카테고리의 다른 글

JAVA - equals와 ==의 차이  (1) 2021.12.14
JAVA - hashCode의 의미  (1) 2021.12.14
JAVA - 연산자란?  (0) 2021.12.13
JAVA - 불변객체(Immutable Object)란(feat.final)?  (0) 2021.12.12
JAVA - Wrapper Class란?  (0) 2021.12.10