조건문
if문 설명은 생략
is 연산자 (!is)
- 자료형이 해당 자료형인지 체크할 때
- a is Int: 좌측 변수가 우측 자료형에 호환되는지 여부를 체크하고, 형변환까지 한번에 진행시켜주는 똑똑한 연산자
다중 조건문 When
- switch문을 좀 더 편리하게 바꾼 기능
- 하나의 변수를 여러 개의 값과 비교
- 등호나 부등호 사용 불가능
- 여러 개의 조건이 맞아도 먼저 부합하는 조건 실행
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
fun main() {
var a = 7
if(a>10){
println("a는 10보다 크다")
}
else{
println(" 거짓")
}
doWhen(1)
doWhen("Hello")
doWhen(3.14)
doWhen(12L)
doWhen("Kotlin")
doWhen(12)
}
fun doWhen(a: Any){
//Any: 어떤 자료형이든 상관없이 호환되는 코틀린의 최상위 자료형
when(a){
1 -> println("정수 1입니다.")
"Hello" -> println("Hello 입니다.")
is Long -> println("Long 타입 입니다.")
!is String -> println("String 타입이 아닙니다.")
else -> println("어떤 조건도 만족하지 않습니다.") //switch의 default
}
// 아래와 같이 println 생략하면 그 값을 반환하여 변수에 할당하거나 직접 값으로서 사용 가능
var result=when(a){
1 -> "정수 1입니다."
"Hello" -> "Hello 입니다."
is Long -> "Long 타입 입니다."
!is String -> "String 타입이 아닙니다."
else -> "어떤 조건도 만족하지 않습니다."
}
print(result)
}
반복문
종류
- 조건형 반복문
- 조건이 참인 경우 반복 유지
- while, do while
- 조건과 관계 없이 반드시 ‘한 번은’ 실행해야 한다면 do while문 사용
- 범위형 반복문
- 반복 범위를 정해 반복 수행
- for
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
fun main() {
var a = 0
while(a < 5){
println(a++)
} // 0 1 2 3 4
do{
prinln(a++)
}while(a< 5) // 0 1 2 3 4
// var 안 붙여도 됨
// 0<=i<=9
for(i in 0..9){
print(i)
}
for(i in 0..9 step 3){ // step 3씩 증가
print(i)
}
for(i in 9 downTo 0){ // 9부터 0까지 감소
print(i)
}
for(i in 9 downTo 0 step 3){
print(i)
}
for(i in 'a'..'e'){
print(i)
} // a b c d e
}