반응형
switch문은 하나의 조건식으로 많은 경우의 수를 처리하는 조건문이다.
switch문의 구조는 다음과 같다.
1
2
3
4
5
6
7
8
9
10
|
switch(조건식){
case 값1:
// 조건식의 결과와 값1이 같은 경우 실행
break;
case 값2:
// 조건식의 결과와 값1이 같은 경우 실행
break;
default:
// 조건식의 결과와 일치하는 값일 없을 때 실행
}
|
cs |
switch문의 조건식의 결과는 정수 또는 문자열이며, case문의 값과 비교하여 알맞은 case를 찾아 실행한다.
또한 switch문에서 break문은 case문을 끝내는 역할을 하며 만일 각각의 case에서 break문을 생략하면 break문을 만날 때까지 모든 경우의 case문의 실행 부분이 동작한다.
만일 case문과 일치하는 값이 중간에 있을 경우 해당 부분부터 실행한 후 break문을 만날때까지 모든 경우의 case문을 실행한다.
예제. 상품의 갯수를 입력하고 수에 따라 쿠폰을 증정하는 프로그램이다.
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
32
33
34
|
package java_practice;
import java.util.Scanner;
public class Switch {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
System.out.println("상품의 갯수를 입력해주세요.(한개 이상 구매시 최대 6매 증정)");
int tag = sc.nextInt();
tag /= 10;
switch(tag) {
case 0:
System.out.println("쿠폰 1매 증정");
break;
case 1:
System.out.println("쿠폰 2매 증정");
break;
case 2:
System.out.println("쿠폰 3매 증정");
break;
case 3:
System.out.println("쿠폰 4매 증정");
break;
case 4:
System.out.println("쿠폰 5매 증정");
break;
default:
System.out.println("쿠폰 6매 증정");
}
sc.close();
}
}
|
cs |
Scanner로 상품의 갯수를 입력받아 tag 변수에 int타입으로 값을 저장하고나서 10으로 나눈 값을 tag에 저장해준다.
데이터 타입이 int이기 때문에 0~9의 수는 10으로 나눴을 때 0.n이므로 0으로 저장된다.
따라서 tag값이 0(입력한 값이 10이하일 경우)일 경우 case 0문이 실행되고 break를 만나 switch문을 빠져나온다.
또한 tag값이 5 이상(입력한 값이 50이상)일 경우 case문에 일치하는 값이 없기 때문에 default문이 실행되게 된다. 그리고 switch문을 빠져나온다.
예제2. 다음은 1년동안 읽은 책의 수에 따라 멘트를 출력하는 프로그램이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
package java_practice;
public class SwitchBook {
public static void main(String[] args) {
// TODO Auto-generated method stub
int book = 12;
book /= 10;
switch(book) {
case 0:
System.out.println("조금 더 노력하세요!");
case 1:
System.out.println("책읽는 것을 즐기시는 군요!");
case 2:
System.out.println("책을 사랑하시는 분이군요!");
default:
System.out.println("당신은 다독왕입니다!");
}
}
}
|
cs |
위와 처럼 break문을 생략하면 case1문부터 switch문이 끝날때까지 모든 case와 default문을 다음과 같이 실행하게 된다.
반응형
'Java > Java 기초문법' 카테고리의 다른 글
[JAVA 기초] 제어문 - 반복문 (for문 - 단일 for문, 다중 for문) (0) | 2021.03.03 |
---|---|
[JAVA 기초] 자바의 특수문자와 printf 서식문자 (0) | 2021.03.02 |
[JAVA 기초] 자바 표준 입력 Scanner 클래스로 문자입력받기 (0) | 2021.03.02 |
[JAVA 기초] 제어문 - 조건문 (if, else if) (0) | 2021.03.02 |
[JAVA 기초] 비교 연산자와 삼항 연산자 (0) | 2021.03.01 |
댓글