728x90
SMALL
안녕하세요 YTS 입니다.
흐름제어
if-else 문
코틀린에서 if-else 문은 자바의 if-else문과 비슷하게 쓰입니다. 다른점이 있다면 if-else 문을 이용하여 삼항 연산자를 만들 수 있는데요. 예제를 살펴볼까요?
class Ifelse {
val height: Int = 184
var heightRange: String = ""
fun whatHeightRange() {
if (height >= 170 && height < 180) {
heightRange = "170대"
} else if (height >= 180 && height < 190) {
heightRange = "180대"
} else if (height >= 190 && height < 200) {
heightRange = "190대"
}
}
//코틀린은 반환 또한 지원합니다.이 속성을 이용하여 삼항 연사자처럼 이용할 수 있습니다.
val weight: Int = 84
val weightRange: String = if (weight >= 60 && weight < 70) {
"60대"
} else if (weight >= 70 && weight < 80) {
"70대"
} else {
"...."
}
}
범위 : .. 연산자
범위 .. 연산자는 코틀린에만 있는 자료구조 입니다. 특정 범위를 나타낼때에 사용됩니다.
class range {
val height: Int = 184
var heightRange: String = ""
fun whatHeightRange() {
if (height in 170..179) {
heightRange = "170대"
} else if (height in 180..189) {
heightRange = "180대"
} else if (height in 190..199) {
heightRange = "190대"
}
}
}
위에 if-else 문에 서 좀더 짧아지고 간결해지게 되었네요.
for 문
코틀린에서의 for문은 for-each형태만을 지원합니다. 그렇기 때문에 자바에 익숙하신분들 이라면 인덱스 접근은 어떻게 하지? 라고 바로 떠올릴 텐데요.
Collection.indicies 프로퍼티를 사용하면 인덱스를 추출할 수 있습니다.
class For {
val animals: List<String> = arrayListOf("사자", "호랑이", "코끼리", "원숭이", "치타")
fun Log() {
for (animal in animals) {
Log.d("animal", "animal = " + animal);
}
for (i in animals.indices) {
Log.d("animal", "animal = " + animals[i]);
}
}
}
While, do-While 문
코틀린에서의 While문과 do-while은 자바와 완전히 동일합니다.
class While {
var a: Int = 1
var b: Int = 20
fun whileFun() {
while (a < b) {
a += 4
b++
}
do {
a += 4
b++
} while (a < b)
}
}
When 문
when 문은 자바의 switch 문을 대체합니다. 기존의 switch 문은 break를 사용하여 절을 구분하지만 when은 {} 중괄호를 사용하여 절을 구분합니다.
class When {
val name: String = "YTS"
fun whenFun() {
when (name) {
"YTS" -> {
Log.d("name", "success")
}
else -> { //디폴트 대신 사용
Log.d("name", "default")
}
}
}
}
728x90
LIST
'IT > kotlin' 카테고리의 다른 글
[Kotlin] 코틀린 스트림 함수 (map, flatMap, groupBy, filter, take, drop, first, distinct, zip, joinToString, count, any, none, max, min, average) (2) | 2019.01.03 |
---|---|
[Kotlin] 코틀린 클래스 (Data Class)와 한정 클래스 (Sealed Class), Getter / Setter (0) | 2018.12.26 |
[Kotlin] 코틀린 자료/ 자료형의 확인 및 변환 (==, ===, is, as, 스마트 캐스트) (0) | 2018.12.18 |
[코틀린] mvvm패턴 속 application context 가져오기 (0) | 2018.11.26 |
코틀린 책 추천 커니의 코틀린 (0) | 2018.08.24 |