博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
浅谈Kotlin(四):控制流
阅读量:6313 次
发布时间:2019-06-22

本文共 2190 字,大约阅读时间需要 7 分钟。

 

 

本篇介绍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}

  

 

转载地址:http://gxexa.baihongyu.com/

你可能感兴趣的文章
有关滚动与位置
查看>>
Box2D自定义重力
查看>>
chpasswd
查看>>
mysqldump --single-transaction 和--lock-tables参数详解
查看>>
android 数据库_sql语句总结
查看>>
python购物车
查看>>
解决python2和python3的pip冲突
查看>>
面试/编程
查看>>
linux每日命令(16):head命令
查看>>
公司内部分享【富有成效的每日站会】总结
查看>>
打造一个上传图片到图床利器的插件(Mac版 开源)
查看>>
iOS横竖屏
查看>>
thinkphp判断更新是否成功
查看>>
Do While ... Loop 与 Do Until ... Loop 的区别
查看>>
【Linux】查询某个字符串出现次数
查看>>
高效使用jquery之一:请使用'On'函数
查看>>
冲刺第一周第三天
查看>>
ERP环境检测工具设计与实现 Environment Detection
查看>>
不要在构造中做太多事情,不然有时候会出现有意思的代码~
查看>>
IIS 发布网站遇到的问题
查看>>