Kotlin学习笔记四

本文详细介绍了Kotlin的控制语句。包括条件分支,如简单分支用if...else,多路分支用when/else;循环处理,有遍历循环和条件循环,还能跳出多重循环;空安全,提供多种判空方法和相关运算符;等式判断,用三个等号判断引用相等,还有is和in运算符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                                             控制语句

 

1.条件分支

  • 简单分支

首先“if……else……"的条件使用规则和java中的用法是一样的。

我们在Kotlin中给某个文本赋值的时候可以直接用该语句进行赋值

eg:                  tv.text = if(is_odd==true)"正确情况下的赋值是正值1"else"错误情况下的赋值时-1"

可以直接这么赋值,代码量似乎又减少了一点。

  • 多路分支

在多路分支的时候,我们在Java中会用switch/case的方式进行反复的判断来进行一些相关的逻辑操作,在Kotlin中我们不再用这种方式了,我们用一种新的方式when/else的方式来控制

eg:                           var count:Int =0

                           when(count){

                          0      ->  tv.text="这是count为0d的时候的的赋值"

                          1     ->  tv.text="这是count为1的时候的赋值情况"

                          else -> tv.text="这是count为其他的情况的赋值

}

                        count=(count+1)%3

从上面的语句我们可以看出,when/else省略了switch/case的break语句,还有default语句,直接使用else代替default.

   如果五个常量都要进入同一个分支当中,只需要用逗号隔开他们即可。如果几个常量刚好是连续的几个数字,可以使用

”in 开始值..结束值“,若不在某个范围内,使用”!in 开始值...结束值“

eg:                          var count:Int =0;

                                 tv.text=when(count){

                               1,3,5,7,9 ->"这是1,3,5,7,9 时候的赋值"

                              in 13...19     ->"这是13到19连续数字的赋值"

                             !in 6...10    ->"这是不是6到10连续的数字的赋值"

                             else             -> "其他情况下的赋值情况"

                    }

                            count =(count+1)%20

 

  • 类型判断

在java中使用类型判断的时候,我们用instancesof,然而在Kotlin中我们需要知道某个类型的话,使用is就用

 

2循环处理

  • 遍历循环

java中的遍历,做android开发的小伙伴们应该都在熟记于心了,那么在Kolin中的循环遍历和其还是有很大区别的。

eg:         

               val girlDes : Array<String> = arrayOf("小姐姐","穿上超短裙","真的很漂亮","真的很性感")

              var des :String =""

               for(item in girlDes ){

               des ="$des $item,\n"

}

            tv.text = des

还有一种方式:根据数组的下标找取元素

val girlDes : Array<String> = arrayOf("小姐姐","穿上超短裙","真的很漂亮","真的很性感")

                  for(i in girlDes.indices){

               var des :String =""

             if(i%2 ==0){

                  des ="$des ${girlDes [i],\n}"

}else{

               des  = "$des ${girlDes [i],\n}"

}

       tv.text = des 

  • 条件循环

Kotlin 的for(i in 数组变量:.indices)无法很好的处理一些情况:Kotlin提供了诸如until    step    downTo这样的关键字

            1)如何设定条件判断的其实值和终止值

            2)每次循环之后的递增值不是1的情况

            3)循环方向不是递增而是递减

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

            5)循环过程中的变量

 

// 左闭又开区间,合法值包括11但是不包括66

for(i in 11 until 66){...}

//每次默认递增1,这里改为每次递增4

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

//for循环默认递增,这里使用downTo表示递减

for (i in 50 downTo 7){}

 

  • 跳出多重循环

Kotlin中使用@标记来跳出循环,而不用java中break

eg:

var i:Int =0

var is_found = false

val girlDes : Array<String> = arrayOf("小姐姐","穿上超短裙","真的很漂亮","真的很性感")

outSide@ while(i<girlDes .size){

var j:Int =0

var item  =girlDes [i]

while(j<item.length){

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

 is_found=true

//发现情况直接跳出循环

break@outSide

}

j++

}

}

 

3 空安全

  • Kotlin中提供的一些方法判断:

1)isNullOrEmpty:判空返回true,f否则为false

2)isNullOrBlank:空指针,字符串长度为0,或者全为空格时返回true

3)isEmpty:字符串长度为0时返回true,只有非空字符串才可以调用

4)isNotEmpty:字符串长度大于0时返回true,只有非空字符串才可以调用

5)isNotBlank:字符串长度大于0且不是全空格串返回true,只有非空字符串才可以调用

6)isBlank:字符串长度为0或者全为空格时返回true,只有非空字符串草可以调用

  • 申明可变变量

非空字符串要么在声明的时候就赋值,要么就下调用前赋值,否则会提示赋值,正常申明的字符串都是非空的。

1.            var str:String?

2.            var arrayTest:Array<String?>

 

  • 检验空值的运算符

        eg: 

        var str_B:String

        var length_test :Int?

        length_test = str_B?.length

        tv.text = "使用?.得到的字符串长度为$length_test"

以上的?.表示的是变量为空的时候返回null,所以返回的变量必须是可控的类型

 

  • 新的运算符​​​​​​​"?:"

这个运算符相当于java中的三元运算符

eg:        leng = strB?.length?:-1                   //表示的是为空的时候就返回右边的值(感觉好麻烦的样子啊)

 

  • 新的运算符"!!"

表示的是强行的把该变量从可空类型转变为非空类型,不做检查,如果运行的时候有空,抛出异常

eg :     length= strB!!.length

 

4等式判断

字符串的等值性判断要求Java的判断方式Kotlin d的判断方式
判断两个字符串是否相等staA.equals(StrB)strA==strB
判断两个字符串是否不等!staA.equals(StrB)strA!=strB

  Kotlin 判断引用是否相等使用三个等号"==="         意思为不仅结构相等而且地址都要相等

 

  • 新运算符 "is"和"in"

java中判断类型名称是用的是instanceof

kotlin中判断类型是否相等用is

in这个运算符判断的是数组中是否存在某个元素通过”变量名 in 数组名“判断是否存在等值元素,使用起来也很方便

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值