[TIL]switch - case 문
오늘 배운 내용은 switch case 문
다중선택문이라고도 하며 수식 결과값과 case문의 리터널 또는 상수와 일치하는 곳의 문장을 실행한다.
모든 switch case문은 if문으로 표현이 가능하지만 반대의 경우엔 아니다.
수식에 사용가능한 자료형은 byte, short, char, int String 이다.
안되는 것은 boolean, long, float, double 형이다.
break 문)
break문을 통해서 해당하는 값의 문장만 실행하고 switch case문에서 빠져나올 수 있다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
package ex0724;
public class swtichEx2 {
public static void main(String[] args) {
int a;
a=3;
//break => switch case, while, do-while에 쓰임
switch(a) {
case 5:System.out.println("*****"); break;
case 4:System.out.println("%%%%"); break;
case 3:System.out.println("###"); break;
case 2:System.out.println("@@"); break;
case 1:System.out.println("$"); break;
}
System.out.println();
}
}
|
cs |
같은 문장을 출력하는 case끼리는 묶을 수 있다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
package ex0724;
public class swtichEx3 {
public static void main(String[] args) {
int a;
a = 13;
switch (a % 3) {
case 0:
System.out.println("3의 배수");
break;
case 1: case 2: // 같은 값을 출력하는 케이스끼리 묶을 수 있다.
System.out.println("3의 배수 아님");
break;
}
System.out.println();
}
}
|
cs |
수식에 해당하는 값이 없을 경우 default 를 통해 값을 입력할 수 있다.
default문의 위치는 swtich문안에 어디에 와도 상관없다. 하지만 되도록이면 마지막을 권장한다.(가독성 문제)
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
|
package ex0724;
import java.util.Scanner;
public class switchEx4 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n;
System.out.print("정수?");
n = sc.nextInt();
switch (n) {
case 3:
System.out.println("*");
break;
case 2:
System.out.println("$");
break;
case 1:
System.out.println("%");
break;
default:
System.out.println("입력오류");
break;
}
sc.close();
}
}
|
cs |
연속적인 switch문
switch문 안에 switch문이 올수 있다.
여기서 주의할 점은 break문의 위치를 잘 설정해야한다.
switch문 안의 break는 해당 swtich만 나오게 된다.
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
|
package ex0724;
public class switchEx7 {
public static void main(String[] args) {
int a;
a = 12;
// 출력값이 * $가 나옴 . why?
//
switch (a % 2) {
case 0:
switch (a % 3) {
case 0:
System.out.println("*");
break; // switch 안에 break은 해당 switch만 나오게 됨
case 1:
System.out.println("#");
break;
case 2:
System.out.println("@");
break;
} break;// switch문 에 break를 줘야 해당 switch문을 나오게 된다.
case 1:
System.out.println("$");
break;
}
}
}
|
cs |
'Language > JAVA' 카테고리의 다른 글
[TIL] do-while 문 (0) | 2020.07.27 |
---|---|
[TIL] while 문 (0) | 2020.07.24 |
[TIL] if문 예제 풀이 (0) | 2020.07.23 |
[TIL] if문 (0) | 2020.07.23 |
[TIL]형 변환 (0) | 2020.07.23 |
댓글