val a: Int = 3
val b: Int = 4
var data1: Int
if(a > b) {
data1 = a
} else {
data1 = b
}
println("data1 : $data1") // => data1 : 4
val data2 = if(a > b) {
a
} else {
b
}
println("data2 : $data2") // => data2 : 4
val data3 = if(a > b) a else b
println("data3 : $data3") // => data3 : 4
when 문
- 코틀린(Kotlin)는 switch 문이 없는 대신 when 문이 존재한다
var data1: Any = 5
when(data1) {
is String -> println(" is Str ") //data1 가 String 형 타입인 경우
20, 30 -> println(" data1==20 or data1==30 ") //data1 가 20 또는 30 인 경우
in 1..10 -> println(" data 가 1~10 값 안에 있음 ") //data1 가 1~10 의 값 범위 안에 있는 경우
else -> println(" else ")
}
var data2 = "hello"
when(data2) {
"hello" -> println(" data2 is hello ")
"world" -> println(" data2 is world ")
else -> println("data2 is not valid data ")
}
var x = 10
when(x) {
1 -> println(" x == 1 ")
2 -> println(" x==2 ")
else -> {
println(" x is neither 1 nor 2 ")
}
}
when(x) {
0, 1 -> println(" x==0 or x==1 ")
else -> println(" otherwise ")
}
when(x) {
in 1..10 -> println(" x 는 1부터 10 범위 안에 있음 ")
!in 10..20 -> println(" x 는 10부터 20 범위 안에 없음 ")
else -> println(" otherwise ")
}
when(x) {
is Int -> println(" x 는 Int 형 ")
else -> println(" x 는 Int 형이 아님 ")
}
/* data.indices
* - indices 는 컬렉션 타입의 인덱스값을 의미
* */
val data = arrayOf<Int>(10, 20, 30)
for(i in data.indices) { //for 문을 반복하면서 0,1, 2 값을 i 에 대입함
print(data[i])
if(i !== data.size -1)
print(",")
}
=> 10, 20, 30
- withIndex() : 인덱스와 실제 데이터를 함께 가져올 때 사용
/* data.withIndex()
* - withIndex 는 인덱스와 실제 데이터를 함께 가져올 떄 사용
* */
val data = arrayOf<Int>(10, 20, 30)
for((index, value) in data.withIndex()) {
print(value)
if(index !== data.size -1)
print(",")
}
=> 10, 20, 30
while 문
- 조건이 참이면 중괄호 { .. } 로 지정한 영역을 반복해서 실행
var x = 0
var sum = 0
wwhile(x < 10) {
sum += ++x
}
println(sum) // => 55
- while : 조건을 먼저 보고 구문을 실행 - do while : 구문을 먼저 보고 돌릴지 조건을 보는 것
var x = 5
while (x > 0) {
print("$x ")
x--
}
// => 5 4 3 2 1
x = 0
while (x > 0) {
print("$x ")
x--
}
// => 출력값 없음
var y = 0
do {
print(y)
y--
} while (y > 0)
// => 0