조건문 if~else 표현식
다른 언어와 비슷하다 그렇지만 코틀린의 if문은 표현식으로도 사용할 수 있다는 것이 특이합니다
표현식은 결괏값을 반화하는 계산식을 말합니다.
fun main(){
var data = 10
var result = if(data>0){
println("data > 0")
true// 반환값
} else{ //생략불가
print("data <= 0")
false
}
println(result) // true
}
if~else 표현식에서는 else를 생략할 수 없으며 if~else 또는 if~else if ~else 형태로만 사용 가능합니다.
결괏값은 각영역의 마지막 줄에 해당합니다.
조건문 when
코트린의 또다른 조건문 when 쉽게 생각해서 switch의 상위 호완이라 생각하시면 됩니다
fun main(){
var data = 10
when(data){
is String -> println("data is string")
10 -> println("data == 10") //출력
20 -> println("data == 20")
in 1..8 -> println("data in 1..8")
else -> {
println("일치하는 값이 없습니다")
}
}
}
when 다음의 소괄호 안의 값이 조건이 되고 값에 따라 각 구문을 실행할 수 있습니다. 위 소스에서는 data 값이 10이므로 data == 10 이 출력됩니다. 위 소스처럼 다양하게 조건을 줄 수도 있습니다.
fun main(){
var data = 10
when{
data is String -> println("data is string")
data == 10 -> println("data == 10") //출력
data == 20 -> println("data == 20")
data in 1..8 -> println("data in 1..8")
else -> println("일치하는 값이 없습니다")
}
}
이렇게 데이터를 명시하지 않고 조건만 명시할 수도 있습니다
fun main(){
var data = 10
result = when{
data is String -> "data is string"
data == 10 -> "data == 10"
data == 20 -> "data == 20"
data in 1..8 -> "data in 1..8"
else -> "일치하는 값이 없습니다"
}
println(result)//data == 10 출력
}
앞서 설명한 if문의 표현식처럼 when 또한 표현식으로 사용할 수 있습니다.
반복문 for과 while
for문은 제어 변숫값을 증감하면서 특정 조건이 참일 때까지 구문을 반복해서 실행합니다, 이때 for문의 조건에는 범위 연산자 in을 사용
fun main(){
var sum: Int = 0
for( i in 1..10){
sum += i
}
println(sum)//55
}
for( i in 1.. 10)이 의미하는 것은 i가 1에서 10까지 1씩 증간한다는 것을 의미합니다.
for( i in 1..10) {...} // 1에서 10까지 1씩증가
for( i in 1 until 10) {...} // 1에서 9까지 1씩증가
for( i in 1..10 step 2) {...} // 1에서 10까지 2씩증가
for( i in 10 downTo 1) {...} // 10에서 1까지 1씩감소
위 소스처럼 다양하게 조건을 줄 수도 있습니다.
fun main(){
val data = arrayOf<Int>(10,20,30)
for( i in data.indices){
print(data[i])
if(i !== data.size-1) print(",")
}
}
이처럼 컬랙션 타입의 index값을 가져와서 데이터 개수만큼 반복시킬 수 있습니다.
fun main(){
val data = arrayOf<Int>(10,20,30)
for( (index,value) in data.withIndex()){
print(value)
if(index !== data.size-1) print(",")
}
}
인덱스뿐만 아니라 실제 데이터를 가지고 오려면 withIndex() 함수를 씁니다.
fun main(){
var i = 0
var sum =0
while(x<10){
sum +=++i
}
print(sum)//55
}
while은 다른 언어의 while과 같은 그 while입니다
'안드로이드 > 깡샘의 안드로이드 앱 프로그래밍' 카테고리의 다른 글
코틀린 공부05 (0) | 2022.01.20 |
---|---|
코틀린 공부04 (0) | 2022.01.16 |
코틀린 공부02 (0) | 2022.01.14 |
코틀린 공부01 (0) | 2022.01.13 |
Kotlin책 - Doit 깡샘의 안드로이드 앱 프로그래밍 with Kotlin (0) | 2022.01.13 |