kotlin 第三站

// kotlin 条件控制
fun main(args : Array<String>){
    //if 表达式
    var a = 1
    var b = 2
    var max = a
    // 普通用法
    if(a < b)
        max = b
    println(max)
    //使用else
    var max2:Int
    // if else 用法
    if(a > b)
        max2 = a
    else
        max2 = b
    println(max2)
    //作为表达式
    var max3 = if(a < b) b else a
    println(max3)
    //if的结果复制给一个变量
    var max4 = if(a < b){
        println("choose a")
        a
    }else{
        println("choose b")
        b
    }
    println(max4)
    //这也说明我也不需要像Java那种有一个三元操作符,因为我们可以使用它来简单实现:
    var max5 = if(a >  b) a else b
    println(max5)
    var c = if(a > b ) a else b
    println("c = $c ")
    //使用区间
    if(a in 1..9){
        println("$a 在区间内")
    }
    if(b in 1..8){
        println("$b 在区间内")
    }
    //When 表达式
    //when 将它的参数和所有的分支条件顺序比较,直到某个分支满足条件。
    //when 既可以被当做表达式使用也可以被当做语句使用。
    // 如果它被当做表达式,符合条件的分支的值就是整个表达式的值,如果当做语句使用, 则忽略个别分支的值。
    //when 类似其他语言的 switch 操作符。其最简单的形式如下:
    // when 中,else  switch  default。如果其他分支都不满足条件将会求值 else 分支。
    when(a){
        1 -> println("a == 1")
        2 -> println("a == 2")
        else ->{
            println("a 不是1,也不是2")
        }
    }
    when1(c)
    when2(c)
    println(hasPrefix("abcdd"))
    println(hasPrefix("prefixabcd"))
    println(hasPrefix(1234))
//when 中使用 in 运算符来判断集合内是否包含某实例:
    val items = arrayOf("apple","banana","kiwi" )
    when{
        "orange" in items -> println("juicy")
        "apple" in items -> println("apple is fun too")
        "banana" in items -> println("banana is fun too")
        "kiwi" in items -> println("kiwi is fun too")
    }
    when{
        "orange" in items -> println("juicy")
        "banana" in items -> println("banana is fun too")
        "kiwi" in items -> println("kiwi is fun too")
    }

}


//另一种可能性是检测一个值是(is)或者不是(!is)一个特定类型的值。
// 注意: 由于智能转换,你可以访问该类型的方法和属性而无需 任何额外的检测。
fun hasPrefix(x : Any) = when(x){
    is String -> x.startsWith("prefix")
    else -> false
}
//如果很多分支需要用相同的方式处理,则可以把多个分支条件放在一起,用逗号分隔:
fun when1(a:Int):Unit{
    when(a){
        1,2 -> println("a == 1 or a == 2")
        else ->{
            println("a 不是1 , 也不是2")
        }
    }
}
//我们也可以检测一个值在(in)或者不在(!in)一个区间或者集合中:
fun when2(a : Int):Unit{
    when(a){
        in 1..10 -> println("a is in the range")
        !in 10..20 -> println("a is outside the range")
        else -> println("none of the above")
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值