📜  科特林范围

📅  最后修改于: 2022-05-13 01:55:03.451000             🧑  作者: Mango

科特林范围

在 Kotlin 中,范围是由端点定义的有限值的集合。 Kotlin 中的范围由开始、停止和步骤组成。 Range 中包含 start 和 stop,step 的值默认为 1。
该范围与可比较的类型一起使用。

在 Kotlin 中创建 Range 有三种方法:

  • 使用(..)运算符
  • 使用rangeTo()函数
  • 使用downTo()函数

(..)运算符

这是使用范围的最简单方法。它将创建一个从开始到结束的范围,包括开始和结束的值。它是 rangeTo()函数的运算符形式。使用 (..)运算符,我们可以为整数和字符创建范围。
使用 (..)运算符的整数范围 Kotlin 程序 –

fun main(args : Array){
  
    println("Integer range:")
    // creating integer range 
    for(num in 1..5){
        println(num)
    }
}

输出:

Integer range:
1
2
3
4
5

使用 (..)运算符的字符范围 Kotlin 程序 –

fun main(args : Array){
  
    println("Character range:")
    // creating character range 
    for(ch in 'a'..'e'){
        println(ch)
    }
}

输出:

Character range:
a
b
c
d
e

rangeTo()函数

它类似于 (..)运算符。它将创建一个范围,直到作为参数传递的值。它还用于为整数和字符创建范围。
使用 rangeTo()函数的整数范围 Kotlin 程序 -

fun main(args : Array){
  
    println("Integer range:")
    // creating integer range 
    for(num in 1.rangeTo(5)){
        println(num)
    }
}

输出:

Integer range:
1
2
3
4
5

使用 rangeTo()函数的字符范围的 Kotlin 程序 –

fun main(args : Array){
  
    println("Character  range:")
    // creating character range
    for(ch in 'a'.rangeTo('e')){
        println(ch)
    }
}

输出:

Character  range:
a
b
c
d
e

downTo()函数

它与 rangeTo() 或 (..)运算符相反。它按降序创建一个范围,即从较大的值到较小的值。下面我们以相反的顺序为整数和字符创建范围。
使用 downTo()函数的整数范围 Kotlin 程序 –

fun main(args : Array){
  
    println("Integer range in descending order:")
    // creating integer range
    for(num in 5.downTo(1)){
        println(num)
    }
}

输出:

Integer range in descending order:
5
4
3
2
1

使用 downTo()函数的字符范围的 Kotlin 程序 –

fun main(args : Array){
  
    println("Character range in reverse order:")
    // creating character range
    for(ch in 'e'.downTo('a')){
        println(ch)
    }
}

输出:

Character range in reverse order:
e
d
c
b
a

使用 forEach 循环的范围 -

forEach 循环也用于遍历范围。

fun main(args : Array){
  
    println("Integer  range:")
    // creating integer range
    (2..5).forEach(::println)
}

输出:

Integer  range:
2
3
4
5

步()

使用关键字step ,可以提供值之间的步长。它主要用于在 rangeTo() 或 downTo() 或 (..)运算符中提供两个值之间的差距。 step 的默认值为 1,step 函数的值不能为 0。

Kotlin 程序的使用步骤——

fun  main(args: Array) {
    //for iterating over the range
    var i = 2
    // for loop with step keyword
    for (i in 3..10 step 2) 
        print("$i ") 
    println()
    // print first value of the range
    println((11..20 step 2).first) 
    // print last value of the range
    println((11..20 step 4).last)  
    // print the step used in the range
    println((11..20 step 5).step)  
}

输出:

3 5 7 9 
11
19
5

反转函数()

它用于反转给定的范围类型。我们可以使用 reverse()函数代替 downTo() 以降序打印范围。

fun main(args: Array) {
    var range = 2..8
    for (x in range.reversed()){
        print("$x ")
    }
}

输出:

8 7 6 5 4 3 2 

范围内的一些预定义函数-

Kotlin Range 中有一些预定义的函数:min()、max()、sum()、average()。

fun main() {
  
    val predefined = (15..20)
  
    println("The minimum value of range is: "+predefined.min())
    println("The maximum value of range is: "+predefined.max())
    println("The sum of all values of range is: "+predefined.sum())
    println("The average value of range is: "+predefined.average())
}

输出:

The minimum value of range is: 15
The maximum value of range is: 20
The sum of all values of range is: 105
The average value of range is: 17.5

检查一个值是否在一个范围内?

fun  main(args: Array)
{
    var i = 2
    //to check whether the value lies in the range
    if( i in 5..10)
        println("$i is lie within the range")
    else
        println("$i does not lie within the range")
}

输出:

2 does not lie within the range