Kotlin学习--03

-----笨笨的Kotlin是根据《Kotlin从零到精通 Android开发》一书为基础,做自己的读书笔记和精简书中的类容-----

2.控制语句

 

2.1条件分支

 

2.1.1单路分支

    if...else...的操作,有点类似三次元运算符。可以返回值,没啥好说的。所以java的三元运算符被取消掉了。

 

2.1.2多路分支

    switch...case被修改成when..else,case 被 “常量/变量->”代替,而且不再需要break,默认只处理一条。

    而且还有一个有意思的扩充

    就是关于在“常量/变量->”的判定中,如果常量的判定是好几个,可以用逗号隔开,如果是范围判定的话,可以使用“in 开始值..结束值”指定区域,如果不在这个区域  !in  这样就可以了

 

2.1.3类型判断

    java中的instanceof被is关键字代替。同时when...else也支持类型的判断,大概变成这样“is Int ->”

    补充一个点,在kotlin中,有个关键字就是Number分别可以代替Long,Double,Float等类型。

 

2.2循环处理

 

2.2.1遍历

    在kotlin取消掉了for(,,)三个参数的做法,取而代之的是之前提过的for(i in listarray.indices)

 

2.2.2条件

    for(,,)三个参数的做法,取消掉之后,付出的代价总结如下:

    1.如何设定条件判断的起始和终止值

    2.每次循环递增的值不是1

    3.循环方向的判定

    4.与条件判断有关的变量不止一个

    5.循环过程中的变量,是否还可以适用。

 

    针对上面的一些问题,出现了几个关键字,until,step,downTO

    

fun for3var(){

    //从11开始遍历到66  包括11不包括66

    for(i in 11 until 66){ }

    

    //每次递增4

    for(i in 23..89 step 4){ }

    

    //递减

    for(i in 50 downTo 7){ }

}

 

用起来起始还是怪麻烦的,可以换一种方法。用while循环

fun whileTest(){

    var poem : String = "";

    var i : Int = 0;

    var poemArray : MutableList<String> = mutableListOf("how","do","hyou");

    while(i < poemArray.size){

        if(i%2 == 0){





        }else{

            

        }

        i++;

    }

}

 

 

相对的 还有do..while

do{

    if(i%2 == 0){





    }else{





    }

    i++;

}while(i < poemArray.size)

 

2.2.3跳出循环

    关键字符continue和break的操作依旧保留。只是做出了一个有趣的改进,就是跳出的层级有了改善。

    假设像过去的,拥有两层for循环,现在是两层的while循环,内层判断结束需要直接跳出双层循环,就要break,break。

    kotlin在这方面做了个骚操作。

    

fun jumpFor(){

    var poemArray : MutableList<String> = mutableListOf("how","do","hyou");

    var i : Int = 0;

    var is_found = false;

    outside@ while(i < poemArray.size){

        var j = 0;

        var item = poemArray[i];

        while(j < item.length){

            if(item[j] == 'w'){

                is_found = true;

                break@outside;

            }

            j++;

        }

        if(is_found)

            break;

        i ++;

    }

}

2.3空安全

2.3.1字符串空安全判定

函数

解释

isNullOrEmpty

空指针和子串长度为0

isNullOrBlank

空指针和子串长度为0,加一个全为空格

isBlank

子串长度为0,加一个全为空格

isEmpty

子串长度为0

isNotEmpty

子串长度大于0

isNotBlank

子串长度大于0且不是全空格串

2.3.2声明可空变量

    使用特殊符号?即可。

    特殊的几个符号

符号

备注

可null

?.

判断为空的话返回null

?:

为null的话取值

!!

把可空类型强制变成非空类型

2.4等式判断

2.4.1结构判断

字符串等值判断要求

Java的判断

Kotlin的判断

判断两个字符串是否相等

A.equals(B)

A==B

判断两个字符串是否不等

!A.equals(B)

A!=B

结构相等和引用相等

 

A===B

结构相等和引用不相等

 

A!==B

2.4.3 is和in

is相当于instanceof  这个不说了

来说一下in.判断数组中是否存在该元素的操作。

 

-----用例代码分享在Github.有兴趣的小伙伴可以去直接看.-----

https://github.com/BXHero/KotlinStudy

===有不对的地方欢迎留言和讨论===

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值