일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Spring
- 국비
- DesignPattern
- 자바기초
- DB
- 패캠챌린지
- 자바
- ncs
- java기초
- 디자인패턴
- 자바기본
- 재택근무
- 자바예제
- String
- 자바연습문제
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online강의
- 패스트캠퍼스후기
- javabasic
- java
- 직장인자기계발
- 스프링
- 직장인인강
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online
- 디자인
- linux
- 데이터베이스
- 웹
- js
- 패스트캠퍼스
- 리눅스
- Today
- Total
FIF's 코딩팩토리
패스트캠퍼스 챌린지 07일차 본문
switch ~ case 문
if~else if ~esle 문을 사용할 경우 복잡해보이고 가독성이 떨어질 수 있다. 이럴때 switch~case문을 사용하면 깔끔하게 코딩을 할 수있다. switch ~ case 문은 비교 조건이 특정 값이나 문자열인 경우 사용한다.
break문을 사용하여 각 조건이 만족한다면 switch 블럭을 빠져 나오도록 한다.
자바 14버전 부터 break를 사용하지 않아도 되는 좀더 간결한 표현식이 나왔다.
아래 코드에서 보이는 것 처럼 case를 한번에 묶어 사용할 수 있다.
달은 입력하면 몇월까지 나오는 프로그램이다. 이도 저도 아닐 경우는 default로 가도록 할 수 있다.
package ch16;
import java.util.Scanner;
public class SwitchCaseTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int month = sc.nextInt();
int day;
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
day = 31;
break; // 걸어야 빠져나감
case 2:
day = 28;
break;
case 4:
day = 30;
break;
case 6:
day = 30;
break;
case 9:
day = 30;
break;
case 11:
day = 30;
break;
default:
System.out.println("존재하지 않는 달입니다.");
day = -1;
}
System.err.println(month + "월은 " + day + "일 입니다.");
}
}
다음은 문자열이 지원되는 swtich~case 문의 예를 한번 살펴보자.
위의 달을 입력하는 예제에서는 case 오른쪽에 정수를 사용했지만 아래 예처럼 문자열도 사용할 수 있다.
package ch16;
public class SwitchCaseTest2 {
public static void main(String[] args) {
String medal = "Gold";
switch(medal) {
case "Gold":
System.out.println("금메달 입니다.");
break;
case "Silver":
System.out.println("은메달 입니다.");
break;
case "Bronze":
System.out.println("동메달 입니다.");
break;
default:
System.out.println("메달이 없습니다.");
break;
}
}
}
자바14부터 swtich~case문을 좀더 간결하게 사용할 수 있도록 바꼈다고 했는데
간단하게 쉼표(,) 로 조건을 구분 한다.
식으로 표현하여 반환 값을 받을 수 있고, 리턴 값이 없는 경우는 오류가 생긴다.
그리고 yield 키워드를 사용 한다.
아래 코드를 보면 case1, 3, 5 .... 이런식으로 되어 있는데 쉼표로 case를 계속 붙여가며 사용할 수 있다.
package ch16;
public class SwitchCaseUpTest {
public static void main(String[] args) {
int month = 3;
int day = switch (month) {
case 1, 3, 5, 7, 8, 10,12 -> {
System.out.println("한 달은 31일입니다.");
yield 31;
}
case 4,6,9,11 -> {
System.out.println("한 달은 30일입니다.");
yield 30;
}
case 2 ->{
System.out.println("한 달은 28일입니다.");
yield 28;
}
default->{
System.out.println("존재하지 않는 달 입니다.");
yield 0;
}
};
System.out.println(month + "월은 " + day + "일입니다.");
}
}
자바에서 크게 조건문을 사용하는 경우를 알아봤다. 그리고 조건문은 정말 많이 사용된다.
앞으로 if문과 switch~case문 이 둘을 적재적소에 사용하도록 연습을 많이하자.
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
'패스트캠퍼스 챌린지' 카테고리의 다른 글
패스트캠퍼스 챌린지 09일차 (0) | 2022.02.01 |
---|---|
패스트캠퍼스 챌린지 08일차 (0) | 2022.01.31 |
패스트캠퍼스 챌린지 06일차 (0) | 2022.01.29 |
패스트캠퍼스 챌린지 05일차 (0) | 2022.01.28 |
패스트캠퍼스 챌린지 04일차 (0) | 2022.01.27 |