Kotlin-条件分支

一.简单分支

可去掉大括号

var flag: Boolean = true;
if (flag)
    System.out.println("flag is true")
else
    System.out.println("flag is false")

可赋值给变量

   var flag: Boolean = true;
   var result = if (flag)
           2
        else
            3

二.多路分支

 var variety :String = "哺乳类"
        var result :String
        when (variety) {
            "鸟类" -> result = "麻雀"
            "爬行类" -> result = "鳄鱼"
            "哺乳类" -> result = "熊猫"
            else -> result = "人类"
        }

以上是Kotlin的多路分支,其变化有

1.关键字switch被when替代

2.case 常量 被 常量 ->代替

3.break被取消,默认跳出

4.default 变为else

其扩展功能有


        var number :Int = 3;
        var out:Int =  when (number) {
            1,2,3,4 -> 0
            in 5..8 -> 2
            !in 15..20 -> 3
            else -> 1
        }
        println(out)

","可支持多种变量值统一处理,in和!in支持变量的浮动区域

类型判断instanceof在Kotlin中用is判断

 if (variety is String) {
            println("variety is String ")
        }

也可以用多路分支来判断

  var number: Number = 3;
        when (number) {
            is Long -> 0
            is Double -> 2
            is Float -> 3
            else -> 1
        }

三.循环语句

Kotlin中while和do while和java一样,取消了for(初始;条件;增减)语法,for的两种方式遍历方式如下

     var flowers: Array<String> = arrayOf("牡丹", "月季", "玫瑰")
        for (flower in flowers) {
            println(flower)
        }

        for (i in flowers.indices) {
            println(flowers[i])
        }

对for的进一步操作,如下

   var flowers: Array<String> = arrayOf("牡丹", "月季", "玫瑰","荷花","菊花","兰花","水仙")

        // 0到2,不包括2
        for (i in 0 until 2) {
            print(flowers[i])
        }
        //2到6,包括6,每次step自增2
        for (i in 2..6) {
            print(flowers[i])
        }
        //递减从6到3
        for(i in 6 downTo 3){
            print(flowers[i])
        }

continue和break和java一样,不过多了多重循环跳出功能

  outside@ for (i in 0 until 7) {
            for (j in 0 until 4) {
                if (i == 3 && j == 2) {
                    break@outside
                }
                println("i = " + i + " j = " + j)
            }
        }

break@标记,跳出有标记的循环语句外

四.空安全

对字符串有以下检验空安全的方法

isNullOrEmpty  空指针或者字符串长度为0返回true,非空串和可空串可调用

isNullOrBlank  空指针.字符串长度为0或者全为空格返回true,非空串和可空串可调用

isEmpty 字符串长度为0返回true,非空串调用

isBlank 字符串长度为0或者空格返回true,非空串调用

isNotEmpty 字符串长度大于0返回true,非空串调用

isNotBlank 字符串长度大于0且不是全空格返回true,非空串调用

var strNotNull:String = ”“ 这种方式不允许为空指针

var strCanNull:String? 这种方式可允许为空指针

  //字符串后缀加了?,表示str可为空
        var str: String? = "hello world"
        //如果str为null,则返回null,不报空指针异常
        val len1 = str?.length;
        //后面加入?:,表示为null,返回后面的数据
        val len2 = str?.length ?: 0;
        //!!表示开发者认定str不可能为null
        val len3 = str!!.length;

五.等式判断

结构相等,判断其皮囊是否相等,用==和!=

引用相等,判断其地址是一只的,用===和!==

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值