티스토리 뷰
코틀린의 while은 자바와 동일하다. for는 자바의 for-each의 형태와 비슷하고 for <아이템> in <아이템s>와 같은 형식을 가진다.
while
while (조건) {
/*...*/
}
do {
/*...*/
} while (조건)
코틀린에는 while과 do-while 루프가 있고 둘 다 자바와 동일한 방법으로 사용하면 된다.
for
java에서 for문은 초깃값, 증가 값, 최종값이 있지만 코틀린은 없다. 대신 코틀린은 범위를 사용한다. 범위는 두 값으로 이뤄진 구간이고 시작값..끝값의 형태로 범위를 생성한다. 이 범위는 시작값과 끝값 모두 포함한다.
fun main() {
for (i in 1..100) {
print("$i ")
}
}
위의 코드는 1부터 100까지 출력하는 코드이다. 양 끝값이 모두 출력된 것을 확인할 수 있다.
위의 사진을 보면 시작값 이상 끝값 이하이다. 따라서 감소하는 값을 출력하고 싶을 때 100..1이라고 범위를 지정하면 의도한 대로 동작하지 않는다. 감소하는 범위를 사용하고 싶다면 downTo를 사용하면 된다.
step은 증감할 값의 절댓값이다. 위의 코드를 실행하면 100부터 2까지 출력된다.
until은 끝값을 포함시키지 않을 때 사용한다.
맵 이터레이션
val binaryReps = TreeMap<Char, String>()
for (c in 'A'..'F') {
val binary = Integer.toBinaryString(c.toInt())
binaryReps[c] = binary
}
for ((letter, binary) in binaryReps) {
println("$letter = $binary")
}
두 번째 for문은 TreeMap을 순회한다. TreeMap 자체가 키에 대해서 정렬이 되어 있는 자료구조이기 때문에 문자 A부터 F까지를 이진수로 변환한 결과값이 출력된다.
맵에 값을 추가할 때 대괄호와 대입연산자를 사용했지만 자바에서와 같이 put을 사용하는 것도 가능하다.
val list = arrayListOf("10", "11", "100")
for ((index, element) in list.withIndex()) {
println("$index: $element")
}
다른 켈렉션에도 순회를 할 수 있다. withIndex를 통해서 인덱스와 함께 값을 순회할 수 있다.
in의 활용
in을 사용해서 값이 범위에 속해있는지 알 수 있고, !in을 통해서 값이 범위에 속하지 않는지 검사할 수 있다.
fun isLetter(c: Char) = c in 'a'..'z' || c in 'A'..'Z'
isLetter은 문자가 알파벳 문자인지 검사하는 함수이다.
fun isLetter(c: Char) = when {
c in 'a'..'z' -> "Small Letter"
c in 'A'..'Z' -> "Capital Letter"
else -> "I don't know!"
}
위와 같이 in의 범위 체크는 when이랑도 같이 활용 가능하다.
println("Banana" in "Apple".."Carrot")
문자열도 in 연산이 가능한데 값이 범위 안에 속하는지 검사할 수 있다.
println("Banana" in setOf("Apple", "Carrot"))
집합에도 in 연산을 사용할 수 있다.
참고 자료
- Kotlin IN ACTION
- Total
- Today
- Yesterday
- postman collection
- java
- mysql
- hashcode
- 코틀린
- string
- github
- Kotlin
- 1차 인터뷰
- pm.test
- 코딩테스트
- python3
- graphql
- go 특징
- 주생성자
- git
- pm.expect
- Kotlin In Action
- downTo
- 2차 인터뷰
- Basic Type
- Squash and merge
- 네이버 2022 공채
- postman tests
- 확장 함수
- Python
- squash merge
- postman
- DGS Framework
- solidity
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |