Kotlin 流程控制

来源:互联网 发布:程序员一般用什么键盘 编辑:程序博客网 时间:2024/05/16 07:16

if语句,相比java,多了有一个返回值


 var age = 26;        if (age < 30) {            Log.d("------>", "$age <30");        }

  var a=10;        var b=11;        var max=if(a>b) a else b;

也可以是代码块返回值

     var a = 10;        var b = 11;        var max = if (a > b) a else b;        var max2 = if (a > b) {            Log.d("------>", "bigger a");            a;        } else {            Log.d("------>", "bigger b");            b;<a target=_blank href="http://mail.163.com/js6/main.jsp?sid=gBxCpiYcVXDnJYefgBccrXTtMWPeCByK#module=mbox.ListModule%7C%7B%22filter%22%3A%7B%22flags%22%3A%7B%22read%22%3Afalse%7D%7D%2C%22order%22%3A%22date%22%2C%22desc%22%3Atrue%2C%22fids%22%3A%5B1%2C3%2C18%2C257%5D%7D">邮箱163</a>        }


when 表达式:

与java的switch case default语句十分相似

区别或者说强大之处:

1:可以分子条件聚合在一起

2:可以任意表达式作为分支的条件

val k:Int = 1;        when (k) {            1 -> Log.d("---->", "1");            2 -> Log.d("---->", "2");            else ->                Log.d("---->", "default");        }        val j:Int = 2;        when (j) {            1, 2 -> Log.d("---->", "1 or 2");            else ->                Log.d("---->", "default");        }

 比较牛逼的一点,可以结合in和!in函数(是检查是否输入某个range) 

例子:

     val i:Int = 2;        when(i)        {            in 1..10-> Log.d("----->","在1->10范围之类");            else->                Log.d("----->","不在1->10范围之类");        }


循环 for 前面已经分享了,这里分享一下do while的特殊之处:

do代码块中的变量while可以访问

  do{           var m=1;            Log.d("----->","m:$m");        }while(m<1);


is 函数 类似于java的instance 检查类型 返回bool 类型 可以用!取反

  var name = "xuan";        if (name is String) {            Log.d("----->", "String");        }

break continue 除了像java一样运用,也可以为循环语句添加一个标识 用@号表示 方便跳到指定地点

break@标识  return@标识

    loop@ for(i in 1..10)        {            for(j in 1..5)            {                if(j>2)                    break@loop;                Log.d("----->","$i*$j="+i*j);            }        }

结果:

03-26 20:44:10.976 25391-25391/com.xuan.kotlinapp D/----->: 1*1=1
03-26 20:44:10.976 25391-25391/com.xuan.kotlinapp D/----->: 1*2=2


1 0