kotlin-range表达式,when表达式

区间(Range)

区间是一个数学上的概念,表示范围

区间的声明

Kotlin 中可以使用 ..until 来声明区间:

i in 1 until 4   // 1 <= i<  4 
i in 1..4        // 1 <= i<= 4 

这里的 .. 操作符对应的是 Int 类中的一个 rangeTo() 方法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0EJKMA9I-1687621112528)(区间和数列/image-20230624190126702.png)]

下面为来定义几种不同的区间:

  • 闭区间
var range = 1 .. 5

for ( i in range){
    
    
    print("$i ")
}  // 输出 1 2 3 4 5 
  • 半闭区间
var range = 1 until 5
for ( i in range){
    
    
    print("$i ")  // 输出 1 2 3 4
}
  • 倒序区间
var range = 5 downTo 1
for ( i in range){
    
    
    print("$i ")
}  // 输出 5 4 3 2 1 
  • 自定义步长的区间

    也可以通过任意步长(不一定为 1 )迭代数字。 这是通过 step 函数完成的

var range = 1..5 step 2
for (i in range){
    
    
    print("$i ")  // 输出 1 3 5
}
  • 反转序列
// 先定义一个 1 到 5 到区间
var range = 1 .. 5
// 对这个区间调用 `reversed()`
var range2 = range.reversed() 

for ( i in range2){
    
    
    print("$i ")  // 输出 5 4 3 2 1
}

对区间的操作:

fun main() {
    
    
    val number = 2
    println(number !in 1..3)//输出 false
     println(number in 1..3)//输出 true
}

这里可以看到我们为什么称呼range为表达式,表达式是有值的,所以我们可以直接使用range表达式的值.

when 的基本使用方法

kotlin 中的 when 的基本使用方法与 Java 中的 switch 类似。

public class test {
    
    
    public static void main(String[] args) {
    
    
        int number = 2;
        switch (number) {
    
    
            case 1:
                System.out.println("one");
                break;
            case 2:
                System.out.println("two");
                break;
            case 3:
                System.out.println("three");
                break;
            default:
                System.out.println("other");
                break;
        }
    }
}

java和kotlin中的对比:

fun main() {
    
    
    val number = 2
    when (number){
    
    
        1-> println("one")
        2-> println("two")
        3-> println("three")
        else-> println("other")
    }
}

功能更加强大的地方:

  1. 多个分支拥有相同的处理时可以放在一起。

    when(x){
          
          
    1->print("x is 1")
    2,3->print("x is 2 or 3")
    else->print("else")
    }
    
  2. 可以用来代替 if-else 链。

    when{
          
          
    3>2->print("3>2 is true")
    4>3->print("4>3 is true")
    5>6->print("5>6 is true")
    }
    

猜你喜欢

转载自blog.csdn.net/qq_43867812/article/details/131368162