1、新建一个文件kt:
2、循环的几种用法:
for
while
do ... while
for:
println("----for 使用-----")
val items = listOf("apple", "banana", "kiwi")
for (item in items) {
println(item)
}
for (index in items.indices) {
println("item at $index is ${items[index]}")
}
while:
println("----while 使用-----")
var x = 5
while (x > 0) {
println( x--)
}
do...while:
println("----do...while 使用-----")
var y = 5
do {
println(y--)
} while(y>0)
3、测试代码:
fun main(args: Array<String>) {
println("----for 使用-----")
val items = listOf("apple", "banana", "kiwi")
for (item in items) {
println(item)
}
for (index in items.indices) {
println("item at $index is ${items[index]}")
}
println("----while 使用-----")
var x = 5
while (x > 0) {
println( x--)
}
println("----do...while 使用-----")
var y = 5
do {
println(y--)
} while(y>0)
println("----continue...break 使用-----")
for (i in 1..10) {
if (i==3) continue // i 为 3 时跳过当前循环,继续下一次循环
println(i)
if (i>5) break // i 为 6 时 跳出循环
}
println("---- 使用-----")
foo()
println("---- 使用-----")
foo1()
println("---- 使用-----")
foo2()
println("----for 使用-----")
forLoop()
println("----String length 使用-----")
print(getStringLength("hello"))
}
fun foo() {
val ints = intArrayOf(0,1,2)
ints.forEach lit@ {
if (it == 0) return@lit
println(it)
}
}
fun foo1() {
val ints = intArrayOf(0,1,2)
ints.forEach {
if (it == 0) return@forEach
println(it)
}
}
fun foo2() {
val ints = intArrayOf(0,1,2)
ints.forEach(fun(value: Int) {
if (value == 0) return
println(value)
})
}
fun forLoop(){
print("循环输出:")
for (i in 1..4) print(i) // 输出"1234"
println("\n----------------")
print("设置步长:")
for (i in 1..4 step 2) print("$i ") // 输出"13"
println("\n----------------")
print("使用 downTo:")
for (i in 4 downTo 1 step 2) print("$i ") // 输出"42"
println("\n----------------")
print("使用 until:")
// 使用 until 函数排除结束元素
for (i in 1 until 4) { // i in [1, 4) 排除了 4
print(i)
}
println("\n----------------")
}
fun getStringLength(obj: Any): Int? {
if (obj is String) {
// 做过类型判断以后,obj会被系统自动转换为String类型
return obj.length
}else{
return 0
}
}
4、测试结果: