educative - kotlin - 4
Range and Iteration
코틀린에서 1부터 5사이의 숫자와 같은 범위를 표현할때는 Range 클래스를 사용해준다. 기본적으로 마지막 범위를 포함시키며 증가 또는 감소값은 기본 1이다.
<첫번째 값> .. <마지막 값>
숫자 범위 뿐만 아니라 문자 범위, 문자열 범위도 표현할 수 있다.
val oneToFive: IntRange = 1..5 //1 ~ 5까지의 정수
val aToE: CharRange = 'a'..'e' // 'a' ~ 'e' 까지의 소문자 알파벳
val seekHelp: ClosedRange<String> = "hell".."help" // //"help" ~ "hell" 까지의 문자열
println(seekHelp.contains("helm") //true
println(seekHelp.contains"helq") //false
범위를 정해주었다면 for (x in ..)문을 사용해 반복문을 만들수 있다. for문 안에있는 x
또한 암묵적으로 val이다.
for (i in 1..5) {print("$i, ")} // 1, 2, 3, 4, 5
for (ch in 'a'..'e') { print(ch) } //abcde
downTo() 메소드를 사용해 reverse iteration 또한 가능하다.
for (i in 5.downTo(1)) {print"$i, ")} // 5, 4, 3, 2, 1
for (i in 5 downTo 1) { print("$i, ") } //5, 4, 3, 2, 1,
또한 맨 끝의 요소를 포함시키지 않는 범위로 동작시키고 시다면 until()을 이용한다.
for (i in 1 until 5) {print("$i ,")} // 1, 2, 3, 4
1이 아닌 일정 간격으로 동작시키고 싶다면 step()을 이용한다
for (i in 1 until 10 step 3) { print("$i, ") } //1, 4, 7,
or (i in 10 downTo 0 step 3) { print("$i, ") } //10, 7, 4, 1,
filter()를 사용해 조건을 걸어줄 수 있다.
for (i in (1..9).filter { it % 3 == 0 || it % 5 == 0 }) {
print("$i, ") //3, 5, 6, 9,
}
Iterating over Arrays and Lists
코틀린에서 배열을 생성하기 위해서는 코틀린 패키지에 있는 kotlin.arrayOf()
를 사용해준다. 참고로 코틀린 패키지안에 내장된 함수들은 kotlin. prefix를 사용하지 않고 호출이 가능하다.
val array = arrayOf(1, 2, 3)
for (e in array) { print("$e, ")} //1, 2, 3
좀더 구체적으로 정수형 배열 선언을 명시하고 싶다면 intArrayOf()
함수를 호출해주면 된다.
혹은 리스트 인스턴스 List<T>
로 만들어줄 수 있다.
배열의 인덱스를 활용하고 싶다면 indices
프로퍼트를 사용해준다.
val names = listOf("Tom", "Jerry", "Spike")
for (index in names.indices) {
println("Position of ${names.get(index)} is $index")
}
"""
Position of Tom is 0
Position of Jerry is 1
Position of Spike is 2
"""
value와 index를 둘 다 활용하고 싶다면 withIndex()
함수를 사용해준다. 파이썬의 enumerate()
와 비슷하다.
for ((index, name) in names.withIndex()) {
println("Position of $name is $index")
}
"""
Position of Tom is 0
Position of Jerry is 1
Position of Spike is 2
"""
When It's Time to Use when
코틀린에서 when문은 다른 언어의 switch문과 동일하다. 자바의 case 대신 -> 을 사용해준다. 맨 밑에 else문으로 조건에 맞지 않을때 행동을 정의할 수 있다.
fun whatToDo(dayOfWeek: Any) = when (dayOfWeek) {
"Saturday", "Sunday" -> "Relax"
in listOf("Monday", "Tuesday", "Wednesday", "Thursday") -> "Work hard"
in 2..4 -> "Work hard"
"Friday" -> "Party"
is String -> "What?"
else -> "No clue"
}
println(whatToDo("Sunday")) //Relax
println(whatToDo("Wednesday")) //Work hard
println(whatToDo(3)) //Work hard
println(whatToDo("Friday")) //Party
println(whatToDo("Munday")) //What?
println(whatToDo(8)) //No clue
Author And Source
이 문제에 관하여(educative - kotlin - 4), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sungjun-jin/educative-kotlin-4저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)