肿瘤康复网,内容丰富有趣,生活中的好帮手!
肿瘤康复网 > 浅谈Kotlin(四):控制流

浅谈Kotlin(四):控制流

时间:2023-02-05 06:55:26

相关推荐

浅谈Kotlin(一):简介及Android Studio中配置

浅谈Kotlin(二):基本类型、基本语法、代码风格

浅谈Kotlin(三):类

浅谈Kotlin(四):控制流

本篇介绍Kotlin的控制流语法(if,for,while,when....)

一、if 语句

1、基本用法:

var a = 10;if(a > 5){Log.i("xqxinfo","a>5成立")}else{Log.i("xqxinfo","a>5不成立")}

打印日志:xqxinfo: a>5成立

2、判断结果赋值

var a = 5;var b = 10;var max = if(a>b) a else bLog.i("xqxinfo","最大值max:"+max)

打印日志:xqxinfo: 最大值max:10

注意:可以将结果体放在{}中

var a = 5;

var b = 10;

var max = if(a>b) {a} else {b}

二、for循环

虽然你在使用了collections的函数操作符之后不会再过多地使用for循环,但是for循 环再一些情况下仍然是很有用的。

提供一个迭代器它可以作用在任何东西上面:

for (item in collection) { print(item) }

如果你需要更多使用index的典型的迭代,我们也可以使用 ranges (反正它通常 是更加智能的解决方案):

for (index in 0..viewGroup.getChildCount() - 1) { val view = viewGroup.getChildAt(index) view.visibility = View.VISIBLE }

在我们迭代一个array或者list,一系列的index可以用来获取到指定的对象,所以上 面的方式不是必要的:

for (i in array.indices) print(array[i])

三、while循环

1、while

var a = 10;

while (a<15){

a++;

Log.i("xqxinfo", "变量a的数值增加1,当前变量a="+a)

}

打印结果:

I/xqxinfo: 变量a的数值增加1,当前变量a=11

I/xqxinfo: 变量a的数值增加1,当前变量a=12

I/xqxinfo: 变量a的数值增加1,当前变量a=13

I/xqxinfo: 变量a的数值增加1,当前变量a=14

I/xqxinfo: 变量a的数值增加1,当前变量a=15

2、do-while

var a = 10;do {a++;Log.i("xqxinfo", "a自增一,当前值:" + a)}while (a<15)

打印结果:

I/xqxinfo: a自增一,当前值:11

I/xqxinfo: a自增一,当前值:12

I/xqxinfo: a自增一,当前值:13

I/xqxinfo: a自增一,当前值:14

I/xqxinfo: a自增一,当前值:15

四、when (效果类似于switch)

1、基本使用

when 表达式与Java中的 switch/case 类似,但是要强大得多。

这个表达式会去 试图匹配所有可能的分支直到找到满意的一项。

然后它会运行右边的表达式。

与 Java的 switch/case 不同之处是参数可以是任何类型,并且分支也可以是一个条 件。

对于默认的选项,我们可以增加一个 else 分支,它会在前面没有任何条件匹配时 再执行。

var a = 10;

when(a){

10 -> { //满足a=10的情况

Log.i("xqxinfo","执行a=10的情况")

a = 11

}

11-> {

Log.i("xqxinfo","执行a=11的情况")

a = 12

}

else -> Log.i("xqxinfo","执行a!=10&&a!=11的情况")

}

打印结果:

I/xqxinfo: 执行a=10的情况

注意:{}括起来满足这个条件的语句,一行写一个代码,不要写在一行里

2、条件可以是一系列被逗号分割的值。

var a = 10;when(a){10,11 -> {Log.i("xqxinfo", "a满足10||11");}else -> Log.i("xqxinfo","执行else")}

打印结果:

I/xqxinfo: a满足10||11

3、可以检测类型

when(view) {is TextView -> view.setText("I'm a TextView")is EditText -> toast("EditText value: ${view.getText()}")is ViewGroup -> toast("Number of children: ${view.getChildCount()} "else -> view.visibility = View.GONE}

如果觉得《浅谈Kotlin(四):控制流》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。