Kotlin流程控制——循环结构
2019-07-01 本文已影响9人
程序员丶星霖
循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体。
当反复执行这个循环体时,需要在合适的时候把循环条件改为假,从而结束循环;否则循环将一直执行下去,形成死循环。
循环语句包含下面4个部分:
- 初始化语句:一条或多条语句,用于完成一些初始化工作。初始化语句在循环开始之前执行。
- 循环条件:一个布尔表达式,这个表达式可以决定是否执行循环体。
- 循环体:循环的主体,如果循环条件允许,这个代码块将被重复执行。如果代码块中只有一行语句,则可以省略花括号。
- 迭代语句:在一次循环体执行结束后,对循环条件求值之前迭代。通常用于控制循环条件中的变量,使得循环在合适的时候结束。
一、while循环
while循环在每次执行循环体之前,都要先对循环条件求值,如果循环条件为真,则运行循环体部分。
var count=0
while (count < 10) {
println("count:${count}")
//迭代语句
count++
}
println("循环结束!")
输出结果:
count:0
count:1
count:2
count:3
count:4
count:5
count:6
count:7
count:8
count:9
循环结束!
使用while循环时,一定要保证循环条件有变成假的时候;否则将成为一个死循环,永远无法结束这个循环。
如果省略了循环体的花括号,while循环只能控制紧跟该循环的一条语句。
二、do while循环
do while循环和while循环的区别:
- while循环时先判断循环条件,如果条件为真则执行循环体;
- do while循环则先执行循环体,然后才判断循环条件,如果循环条件为真,则执行下一次循环,否则中止循环。
var count=1
do {
println(count)
count++
}while (count<10)
println("循环结束!!")
输出结果:
1
2
3
4
5
6
7
8
9
循环结束!!
do while循环的循环体至少执行一次。
三、for-in循环
for-in循环专门用于遍历范围、序列和集合等包含的元素。
- for-in循环中的常量无须声明。for-in循环中的常量将会在每次循环开始时自动被赋值,因此该常量无须提前声明。
- for-in循环可用于遍历任何可迭代对象。
for-in循环可用于遍历范围。
var max=7
var result=1
for (num in 1..max) {
result*=num
}
println(result)
输出结果:
5040
for-in循环的循环计数器相当于一个用val声明的常量,因此程序不允许在for-in循环中对循环计数器进行赋值。
四、嵌套循环
如果把一个循环放在另一个循环体内,那么就可以形成嵌套循环。
嵌套循环就是把内层循环当成外层循环的循环体。只有内层循环的循环条件为假时,才会完全跳出内层循环,才可以结束外层循环的当次循环,开始下次循环。
for (i in 0 until 5) {
var j=0
while (j < 3) {
println("i的值为:${i},j的值为:${j++}")
}
}
输出结果:
i的值为:0,j的值为:0
i的值为:0,j的值为:1
i的值为:0,j的值为:2
i的值为:1,j的值为:0
i的值为:1,j的值为:1
i的值为:1,j的值为:2
i的值为:2,j的值为:0
i的值为:2,j的值为:1
i的值为:2,j的值为:2
i的值为:3,j的值为:0
i的值为:3,j的值为:1
i的值为:3,j的值为:2
i的值为:4,j的值为:0
i的值为:4,j的值为:1
i的值为:4,j的值为:2
嵌套循环不仅可以是两层嵌套,还可以是多层嵌套。都可以把内层循环当成外层循环的循环体来对待。
学海无涯苦作舟
![](https://img.haomeiwen.com/i4625756/1e4bf2f119027169.jpg)