Kotlin 区间

正向区间

区间通常是指一类数据的集合,例如,由符合0≤a≤1的实数组成的一个集合便是一个区间,它包含了0~1的所有实数。在Kotlin中,区间是通过rangeTo(other:Int)函数构成的区间表达式,也可以用“..”形式的操作符来表示。接下来我们通过两个案例来讲解一下整型类型的区间。整型类型区间的具体代码如下所示。

package com.itheima.chapter02.range
fun main(args: Array<String>) {
    for (i in 1.rangeTo(4)) {  // 与1 <= i <= 4 相同
        print(i.toString() + "\t")
    }
  print("\n")
    for (i in 1..4) {          // 与1 <= i <= 4 相同
        print(i.toString() + "\t")
    }
}

运行结果:

1 2 3 4
1 2 3 4

上述代码中,通过rangeTo(other:Int)“..”两种定义区间的形式定义了一个[1,4]的区间,并使用for循环输出区间[1,4]之间的值。从运行结果可以看出,两种方式都可以输出[1,4]之间的值。

在Kotlin中,还有一个函数until(to:Int),该函数与rangeTo()非常相似,只不过使用该函数输出的区间不包含结尾元素,并且该函数在使用时可以省略(),在until后面加上空格符,空格符后面加上范围值即可,具体代码如下所示。

package com.itheima.chapter02.range
fun main(args: Array<String>) {
    for (i in 1 until 4) {
        print(i.toString() + "\t")
    }
}

运行结果:

1 2 3

上述代码中,1 until 4表示[1,4)之间的数字,该区间包含数字1,不包含数字4,因此上述代码的运行结果为“1 2 3”。

逆向区间

正向区间讲解的区间,是一个按照正向顺序执行的区间,其实在Kotlin中,也可以按照逆向顺序输出区间中的内容,要想实现这样的操作需要使用downTo(to:Int)函数,该函数可以省略()并且在downTo后加上空格符,空格符后加上范围值即可。接下来通过具体的代码进行演示,具体代码如下所示。

package com.itheima.chapter02.range
fun main(args: Array<String>) {
    for (i in 4 downTo 1) {
        print(i.toString() + "\t")
    }
}

运行结果:

4 3 2 1

上述代码中,4 downTo 1的意思是从4开始到1之间的数字,通过一个for循环将从4到1之间的数字打印出来,打印结果为“4 3 2 1”。

步长

前面讲解区间时,使用的都是默认的步长1,即每次递增或递减的差值为1,如果想要在循环中指定步长,则需要使用step(step:Int)函数来实现,step中的()也可以省略,书写时在step后面加上空格符,空格符后面加上步长即可。接下来我们通过具体的代码进行演示,具体代码如下所示。

package com.itheima.chapter02.range
fun main(args: Array<String>) {
    for (i in 1..4 step 2) {  // i in [4 , 1]
        print(i.toString() + "\t")
    }
    print("\n")
    for (i in 4 downTo 1 step 2) {  // i in [4 , 1]
        print(i.toString() + "\t")
    }
}

运行结果:

1 3
4 2

在上述代码中,分别使用正向区间和逆向区间输出[1,4]之间的值,并指定步长为2。当循环遍历正向区间i=1时,符合条件在区间范围内,增加步长2,此时i=3,也符合条件在区间范围内,再次增加步长,此时i=5,不符合条件在区间范围内,因此运行结果只输出1和3。逆向区间是一样的道理,以此类推即可。

为了让初学者能够掌握for循环中i的变化过程,接下来我们通过一个表格将i的值展示出来,如表所示。

区间方向 第1次 第2次 第3次
正向区间的值 1 3 5
逆向区间的值 4 2 0
是否输出

酷客教程相关文章:

赞(0)

评论 抢沙发

评论前必须登录!