오오~~ 벌써 다섯번 째 기본 강의이다.
오늘은 분기문에 대해서 공부해 볼거다.
우리가 잘 아는 java 처럼 if , if else , else 를 이용해서 분기를 하는 것도 있지만 이건 다들 아실 거라 생각하고 넘어가겠다.
When 구문을 사용한 분기 처리
Kotlin 에서는 when 이라는 녀석을 이용해서 분기 처리를 할 수 있다. when 은 java 에서 switch case 문과 유사하다.
java에서는 정수나 String 만을 ( String 도 java 8 부터 가능 ) 비교할 수 있었는데, Kotlin에서는 이 두가지 뿐만 아니라 다양한 타입에서 비교가 가능하다. 사용하는 형태는 아래와 같다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
when (변수나 수식) {
값1 -> {
// 로직
}
값2 -> {
//로직
}
값3 -> {
// 로직
}
else -> {
// 위의 조건이 다 포함이 안될
}
}
|
뭐 딱봐도 어려움은 없을 것이라 생각한다. 아 그래도 java 의 switch case 와 차이를 말하자면 java 와 다르게 따로 break를 안걸어줘도 해당하는 값이 들어오면 분기문을 나간다는 차이가 있다.
조금 더 확실하게 공부하기 위해 예제를 작성해보겠다.
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
fun main ( args : Array<String>) {
var n1 = 10;
// 기본적인 when 구문
when (n1) {
1 -> {
println("n1 : ${n1}");
}
2 -> {
println("n1 : ${n1}");
}
3 -> {
println("n1 : ${n1}");
}
else -> {
println("n1 : ${n1}");
}
}
var s1 = "바보";
// String 비교
when (s1) {
"바보" -> {
println("나는 바보입니다.");
}
"천재" -> {
println("나는 천재입니다.");
}
else -> {
println("나는 사람입니다.");
}
}
// 값 여러개에 포함될지 여부 체크
when (n1) {
1, 2 -> {
println("n1 is 1 or 2");
}
3, 4, 5 -> {
println("n1 is 3 or 4 or 5");
}
else -> {
println("n1 is not 1, 2, 3, 4, 5");
}
}
// in 연산자 사용하기
when (n1) {
in 1..2 -> {
println("n1 is 1 or 2");
}
in 3..5 -> {
println("n1 is 3 or 4 or 5");
}
!in 1..5 -> {
println("n1 is not 1, 2, 3, 4, 5");
}
}
var f1 = 1.5;
// Float 형 비교
when (f1) {
0.5 -> {
println("f1 : ${f1}");
}
1.5 -> {
println("f1 : ${f1}");
}
2.5 -> {
println("f1 : ${f1}");
}
else -> {
println("f1 : ${f1}");
}
}
var fn1 = f1(1);
var fn2 = f1(2);
var fn3 = f1(3);
var fn4 = f1(4);
println("fn1 : ${fn1}");
println("fn2 : ${fn2}");
println("fn3 : ${fn3}");
println("fn4 : ${fn4}");
}
// when 구문 함수에서의 활용
// 해당하는 값의 { } 안의 값이 리턴됨
fun f1 (n1 : Int) = when(n1) {
1 -> {
1; //1이면 1 리턴
}
2 -> {
2; //2이면 2 리턴
}
3 -> {
3; //3이면 3 리턴
}
else -> {
-1; // 그외의 값에는 -1 리턴
}
}
|
각각의 경우에 대해 예제를 작성해보았다 ! 달아놓은 주석을 보면 사용할 수 있을 것이다. 한번 실습해보기를 권한다.
위의 코드르 실행해보면 아래와 같은 결과가 나온다.
오늘은 여기까지만 공부하자 ! 그럼 오늘도 열심히 코딩하자 ㅎㅎ
반응형
'Programming > Kotlin' 카테고리의 다른 글
[Kotlin] 코틀린 뽀개기 - 객체지향 언어인 코틀린! (3) | 2019.11.27 |
---|---|
[Kotlin] Kotlin 기본 강의 (6) - 반복문 (0) | 2019.11.03 |
[Kotlin] Kotlin 기본 강의 (4) - 연산자 (2) | 2019.11.02 |
[Kotlin] Kotlin 기본 강의 (3) - Lambda (0) | 2019.10.30 |
[Kotlin] Kotiln 기본 강의 (2) - 함수 (1) | 2019.10.26 |
댓글