티스토리 뷰
조건이 여러개일때 간다히 표현되는
Switch-case
switch - 선택하다.
*switch( 식X ), 조건이 특정값이나 문자열로 표현될 수 있을때 많이 사용된다.
구문이 깔끔해보여서 많이 사용한다.
조건에 매치되는 변수나 값이 들어간다.
- if ‐ else if ‐ else 문을 사용할 때 복잡하고 번거로운 부분(if, else 계속해서 삽입되는 중괄호들)을 가독성 좋게 구현.
- 비교 조건이 특정 값이나 문자열인 경우 사용
- break 문을 사용하여 각 조건이 만족되면 switch 블 럭 을 빠져나오도록 함
- 자바 14부터 좀 더 간결해진 표현식이 지원 됨 ( break 사용하지 않음 )
switch(입력변수,문자열) {
case 입력값 1 : ...
break;
case입력값2 : ...
break; ...
default :
break;
}
break; 를 만나면 그 다음 조건식은 통째로 생략하고 탈출한다.
package 16;
import java.util.Scanner;
public class SwitchCaseTest {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//한달이 몇일인지 알려주는 프로그램을 구현해보자
int month = scanner.nextInt();
int day;
switch(month) {
case 1: day = 31;
break;
case 2: day = 28;
break;
case 3: day = 31;
break;
case 4: day = 30;
break;
case 5: day = 31;
break;
case 6: day = 30;
break;
case 7: day = 31;
break;
case 8: day = 31;
break;
case 9: day = 30;
break;
case 10: day = 31;
break;
case 11: day = 30;
break;
case 12: day = 31;
break;
default:
System.out.println("존재하지 않는 달입니다.");
day = -1;
}
System.out.println(month+"월은"+day+"입니다.");
}
}
package kr.or.kh16;
import java.util.Scanner;
public class SwitchCaseTest {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//한달이 몇일인지 알려주는 프로그램을 구현해보자
int month = scanner.nextInt();
int day;
switch(month) {
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
day = 31;
break;
case 4: case 6: case 9: case 11:
day = 30;
break;
case 2:
day = 28;
break;
default:
day = 0;
System.out.println("존재하지 않는 달입니다.");
}
System.out.println(month+"월은"+day+"입니다.");
}
}
//31일 30일 28일 각 각 끝나는 케이스를 묶어주니 가독성이 좋아졌다.
Switch- case (문자열)
자바의 버전 UP이 되어서 문자열도 지원하게 되었다.
package 16;
import java.util.Scanner;
public class SwitchCaseTest2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("매달을 입력하세요.");
String medal = scanner.next();
switch(medal) {
case "gold" : case "GOLD" :
System.out.println("금메달 입니다.");
break;
case "silver" : case "SILVER" :
System.out.println("은메달 입니다.");
break;
case "bronze" : case "BRONZE" :
System.out.println("동메달 입니다.");
break;
default:
System.out.println("메달이 없습니다");
break;
}
}
}
-Switch case는 단독으로 사용하는것이 최상이다.
겹으로 사용하면 상당히 안좋다. 복잡해지고 가독성도 안좋아진다.
Switch Expression
- Java 14 version부터 지원된다.
- 간단하게 쉼표(,)로 조건 구분.
- 식으로 표현 하여 반환 값을 받을 수 있음. 리턴 값이 없는 경우는 오류가 생김.
- yield 키워드 사용.
package kr.or.kh16;
import java.util.Scanner;
public class SwitchCaseUpTest {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int month = scanner.nextInt();
int day;
/*switch(month) {
case 1,3,5,7,8,10,12 ->
day = 31;
case 2->
day = 28;
case 4,6,9,11->
day = 30;
default->{
System.out.println("존재하지 않는 달입니다.");
day=-1;
}*///전통적인 방법
day = switch(month) { //리턴타입사용
case 1,3,5,7,8,10,12 ->{
System.out.println("이번달은 31까지입니다.");
yield 31; // 중괄호가 쓰였다면 yield라는 키워드가 있어야 반환이 된다.
}
case 2 ->
28;
case 4,6,9,11 ->
30;
default ->{ //수행문이 두개일때는 중괄호{ } 를 써준다.
System.out.println("존재하지 않는 달입니다.");
yield -1; //반환, day로 리턴
}
};//문장의 끝임으로 ; 사용해준다.
System.out.println(month+"월은"+day+"입니다.");
}
}
//Java 14 version이전은 전통적인 방법, 이후는 함수처럼 사용할 수 있다.
// : 대신 ->
//break문이 사라진다.
'자바(Java)학습 > 1_Java 기초' 카테고리의 다른 글
1.자바 프로그래밍 시작하기 (0) | 2021.08.19 |
---|---|
0.자바(java)의 기초- 목차 (0) | 2021.08.19 |
15-3. 조건문 최종 실습 (0) | 2021.08.18 |
15-2. 조건문(if-if문) (0) | 2021.08.18 |
15-1.조건문(if-else if문) (0) | 2021.08.18 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 반복문 break continue
- 객체지향이란
- 자바의 기초
- 중첩반복문
- 반복문
- 자바 반복문 for문
- java 기초
- 자바 if else if else
- java란
- java
- if else if
- 스프링 logging
- 자바 반복문
- 스프링 로그
- 자바 연산자 우선순위
- 다운캐스팅
- 자바
- java 프로그래밍이란
- 스프링 로깅
- 자바 프로그래밍이란
- if if
- 자바 switch case
- 자바 do while
- 자바 if if
- Switch Case
- 자바 조건문 if else
- Downcasting
- 자바 조건문 if else if문
- 조건문
- 데이터베이스 null
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함