2.4 while, for - ericbykim/kotlin-in-action GitHub Wiki

while

  • μžλ°”μ™€ 동일
while (cond) {
	/* ... */
}

do {
	/* ... */
} while (cond)

for

  • λ²”μœ„(range)λ₯Ό μ‚¬μš©ν•œλ‹€.
  • .., downTo, step, until
val oneToTen = 1..10 // 1~10 1,10 포함
fun fizzbuzz(i: Int) = when {
	i%15 == 0 -> "FizzBuzz"
	i%3 == 0 -> "Fizz"
	i%5 == 0 -> "Buzz"
	else -> "$i"
}

for (i in 1..100) { // 1, 100 포함
	print(fizzbuzz(i))
}

for (i in 100 downTo 1 step 2) {
	print(fizzbuzz(i))
}

for (i in 0 until 100) { // 100 미포함
	print(fizzbuzz(i))
}
val myMap = TreeMap<Char, String>()

for (c in 'A'..'F') {
	mapMap[c] = Integer.toBinaryString(c.toInt())
}

for ((letter, binary) in myMap) {
}

val list = arrayListOf("10", "11", "1001")

for ((index, element) in list.withIndex()) {
}

in

  • in 값이 λ²”μœ„μ— μ†ν•˜λŠ”μ§€ 검사
  • !in 값이 λ²”μœ„μ— μ†ν•˜μ§€ μ•ŠλŠ”μ§€ 검사
fun isLetter(c: Char) = 
	c in 'a'..'z' || c in 'A'..'Z' // 'a'<=c && c<='z'둜 λ³€ν™˜λœλ‹€.

fun isNotDigit(c: Char) = 
	c !in '0'..'9'

fun test(c: Char) = when(c) {
	in '0'..'9' -> "digit"
	in 'a'..'z', in 'A'..'Z' -> "letter"
	else -> "don't know"
}
  • java.lang.Comparable μΈν„°νŽ˜μ΄μŠ€λ₯Ό κ΅¬ν˜„ν•œ ν΄λž˜μŠ€λŠ” λ²”μœ„λ₯Ό λ§Œλ“€ 수 μžˆλ‹€.
"Kotlin" in "Java".."Scala" // true
"Kotlin" in setOf("Java","Scala") // false