【Kotlin -- 知识点】循环控制

循环控制语句也是每门语言不可缺少的一部分,Java 中主要有两种循环语句:while 循环和 for 循环。Kotlin 循环其实几乎和 Java 一模一样。

一、for 语句

  • Kotlin废除了Java中的for(初始值;条件;增减步长)这个规则。但是Kotlin中对于for循环语句新增了其他的规则,来满足刚提到的规则。
  • for循环提供迭代器用来遍历任何东西
  • for循环数组被编译为一个基于索引的循环,它不会创建一个迭代器对象

1.1 新增的规则,去满足for(初始值;条件;增减步长)这个规则

  • 递增

关键字:until 范围:
until[n,m) => 即大于等于n,小于m

// 循环5次,且步长为1的递增
 for (i in 0 until 5){
     print("i => $i \t")
 }

输出结果:

i => 0 i => 1 i => 2 i => 3 i => 4

  • 递减

关键字:downTo
范围:downTo[n,m] => 即小于等于n,大于等于m ,n > m

// 循环5次,且步长为1的递减
 for (i in 15 downTo 11){
     print("i => $i \t")
 }

输出结果:

i => 15 i => 14 i => 13 i => 12 i => 11

  • 符号(’ … ') 表示递增的循环的另外一种操作

使用符号( ‘…’).
范围:…[n,m]=> 即大于等于n,小于等于m
和until的区别,一是简便性。二是范围的不同。

print("使用 符号`..`的打印结果\n")
 for (i in 20 .. 25){
     print("i => $i \t")
 }

println()

 print("使用until的打印结果\n")
 for (i in 20 until 25){
     print("i => $i \t")
 }

输出结果:

使用 符号..的打印结果
i => 20 i => 21 i => 22 i => 23 i => 24 i => 25

使用until的打印结果
i => 20 i => 21 i => 22 i => 23 i => 24

  • 设置步长

关键字:step

for (i in 10 until 16 step 2){
     print("i => $i \t")
 }

输出结果:

i => 10 i => 12 i => 14

1.2 迭代

  • for 循环提供一个迭代器用来遍历任何东西。
  • for 循环数组被编译为一个基于索引的循环,它不会创建一个迭代器对象
  • 遍历字符串
for (i in "abcdefg"){
     print("i => $i \t")
 }

输出结果:

i => a i => b i => c i => d i => e i => f i => g

  • 遍历数组
var arrayListOne = arrayOf(10,20,30,40,50)

 for (i in arrayListOne){
     print("i => $i \t")
 }

输出结果:

i => 10 i => 20 i => 30 i => 40 i => 50

  • 使用数组的 indices 属性遍历
var arrayListTwo = arrayOf(1,3,5,7,9)
 for (i in arrayListTwo.indices){
     println("arrayListTwo[$i] => " + arrayListTwo[i])
 }

输出结果:

arrayListTwo[0] => 1
arrayListTwo[1] => 3
arrayListTwo[2] => 5
arrayListTwo[3] => 7
arrayListTwo[4] => 9

  • 使用数组的 withIndex() 方法遍历
var arrayListTwo = arrayOf(1,3,5,7,9) 
for ((index,value) in arrayListTwo.withIndex()){     
	println("index => $index \t value => $value") 
}

输出结果:

index => 0 value => 1
index => 1 value => 3
index => 2 value => 5
index => 3 value => 7
index => 4 value => 9

  • 迭代器遍历
var arrayListThree = arrayOf(2,'a',3,false,9) 
var iterator: Iterator<Any> = arrayListThree.iterator() 
while (iterator.hasNext()){     
	println(iterator.next()) 
}

输出结果:

2
a
3
false
9

  • foreach 遍历
 val array = arrayOf(2,'a',3,false,9)
 array.forEach { println(it) }

输出结果:

2
a
3
false
9

二、while 语句

 var num = 5
 var count = 1
 while (num < 10){
     println("num => $num")
     println("循环了$count 次")
     count++
     num++
 }

输出结果:

num => 5
循环了1 次
num => 6
循环了2 次
num => 7
循环了3 次
num => 8
循环了4 次
num => 9
循环了5 次

三、do…while 语句

 var num = 5
 var count = 1
 do {
     println("num => $num")
     println("循环了$count 次")
     count++
     num++
 }while (num < 10)

输出结果:

num => 5
循环了1 次
num => 6
循环了2 次
num => 7
循环了3 次
num => 8
循环了4 次
num => 9
循环了5 次

注意:do{…}while 最少执行一次,while(exp) 可能一次也不执行,这点也是和Java相同的

四、跳转语句(return、break、continue)

1. return语句

默认情况下,从最近的封闭函数或匿名函数返回。

例:

fun returnExample(){
     var str: String = ""
     if (str.isBlank()){
         println("我退出了该方法")
         return
     }
 }

2. break语句

作用:终止最近的闭合循环。

var count: Int = 1
 for (i in 1 until 10){
     if (i == 5){
         println("我在第$i 次退出了循环")
         break
     }
     count++
 }

println("我循环了多少次:count => $count")

输出结果:

我在第5 次退出了循环
我循环了多少次:count => 5

3. continue语句

前进到最近的封闭循环的下一个步骤(迭代)。

for (i in 1 until 10){
     if (i == 5){
         println("我跳过了第$i 次循环")
         continue
     }
     println("i => $i")
 }

输出结果:

i => 1
i => 2
i => 3
i => 4
我跳过了第5 次循环
i => 6
i => 7
i => 8
i => 9

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kevin-Dev

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值