728x90
반응형
for loop문은 특정 범위의 내용을 순회 하면서 내용을 처리할 때 자주 쓴다.
Kotlin에서 for 문은 아래와 같이 사용한다.
fun main() {
for (i in 1..3) {
println("Hey $i!")
}
}
특정 범위를 나타낼 때 두 개의 값을 사용해서 정의할 수 있다.
범위를 나타내는 방법은 '..'를 사용하는 방법 말고 until을 사용할 수도 있다.
fun range() {
val range1 = 1..10
val range2 = 0 until 10
println(range1)
println(range2)
}
'..'는 시작과 끝을 포함하지만 until은 끝은 포함하지 않게 된다.
until은 실수에 대해서는 사용할 수 없다.
간격은 step 을 사용할 수 있다. 다음 예제를 통해 범위를 확인해 볼 수 있다.
fun showRange(r: IntProgression) {
for (i in r) {
print("$i ")
}
print(" // $r")
println()
}
fun main() {
showRange(1..5)
showRange(0 until 5)
showRange(5 downTo 1)
showRange(0..9 step 2)
showRange(0 until 10 step 3)
showRange(9 downTo 2 step 3)
}
문자열의 경우도 가능하다.
fun charRange() {
for (c in 'a'..'z') {
print(c)
}
}
문자열의 경우 첫 번째 문자는 0번째 배열처럼 읽어 들일 수 있다. 아래 처럼 하면 그 의미를 알 수 있다.
fun indexString() {
val s = "abc"
for (i in 0..s.lastIndex) {
print(s[i] + 1)
}
}
s[i]는 a이지만 아스키코드 +1을 하였기 때문에 b가 나오게 된 것이다.
인덱스로 접근해도 되지만 문자를 Loop문에 넣으면 자동으로 문자가 하나씩 전달된다.
fun hasChar(s:String, ch: Char): Boolean {
for (c in s) {
if (c == ch) return true
}
return false
}
fun main() {
println(hasChar("kotlin", 't'))
println(hasChar("kotlin", 'a'))
}
s에 kotlin이라는 값이 전달 되면 for문에서 c에 문자열이 하나씩 할당 된다.
어떤 동작을 단순히 반복하고 싶다면 repeat를 사용하면 된다.
fun repeat() {
repeat(2) {
println("hi!")
}
}
728x90
반응형
'Develop! > Kotlin' 카테고리의 다른 글
생성자 in kotlin (0) | 2023.07.27 |
---|---|
'in' in kotlin (0) | 2023.07.26 |
String Template in Kotlin (0) | 2023.07.19 |
함수 in Kotlin (0) | 2023.07.14 |
Data Type in Kotlin (0) | 2023.07.14 |