前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >浅谈Kotlin(四):控制流

浅谈Kotlin(四):控制流

作者头像
听着music睡
发布2018-06-08 17:47:10
5650
发布2018-06-08 17:47:10
举报
文章被收录于专栏:Android干货Android干货

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

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

浅谈Kotlin(三):类

浅谈Kotlin(四):控制流

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

一、if 语句

  1、基本用法:

代码语言:javascript
复制
     var a = 10;
        if(a > 5){
            Log.i("xqxinfo","a>5成立")
        }else{
            Log.i("xqxinfo","a>5不成立")
        }
  
     打印日志:xqxinfo: a>5成立

  2、判断结果赋值

代码语言:javascript
复制
var a = 5;
var b = 10;
var max = if(a>b) a else b
Log.i("xqxinfo","最大值max:"+max)

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


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

二、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

代码语言:javascript
复制
var a = 10;
while (a<15){
    a++;
    Log.i("xqxinfo", "变量a的数值增加1,当前变量a="+a)
}

打印结果:

  2、do-while

代码语言:javascript
复制
var a = 10;
do {
     a++;
     Log.i("xqxinfo", "a自增一,当前值:" + a)
}while (a<15)

打印结果:

四、when (效果类似于switch)

1、基本使用

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

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

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

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

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

代码语言:javascript
复制
var a = 10;

when(a){

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

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

代码语言:javascript
复制
var a = 10;
when(a){
  10,11 -> {
     Log.i("xqxinfo", "a满足10||11");
  }
  else -> Log.i("xqxinfo","执行else")
 }

打印结果:
I/xqxinfo: a满足10||11 

  3、可以检测类型

代码语言:javascript
复制
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
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-06-08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档