从零开始学Kotlin基础篇系列文章

条件控制-if

        var a=10
var b=20
if(a>b) print(a)
if(a>b){
print(a)
}else{
print(b)
}
val max = if( a > b) a else b
if ( a in 1..10){
print("a在1到10区间内")
}

条件控制-when

        val x = 3
when (x) {
1 -> print("x 是1")
2 -> print("x 是2")
else -> print("x 不是1也不是2")
}
when (x) {
1, 2 -> print("x 是1或者2")
else -> print("x 不是1也不是2")
}
when (x) {
in 1..5 -> print("x 在1-5中")
!in 5..10 -> print("x不在5-10中")
else -> print("x 不是1也不是2")
}

循环控制-for

        val ints = arrayOf(1, 2, 3, 4, 5)
for (num: Int in ints) {//循环遍历数值
print((num))
}
for (index in ints.indices) {//循环遍历索引和值
print("$index 位置的数是 ${ints[index]}")
}

循环控制-while/do...while

        var a = 10
while (a < 10) {
print("a < 10")
a++
}
do {
print("先输出一下再去判断")
a++
} while (a < 10)

跳转表达式 return、break、continue

  • 常规用法
    for (i in 1..10) {
if (i == 3) continue//i==3时跳出该循环执行下一轮循环
print(i)
if (i > 5) break//i>5时跳出循环或者说终止循环
if (i == 8) return //i==8时终止循环以及终止以下步骤
}
  • 在 Kotlin 中任何表达式都可以用标签(label)来标记。 标签的格式为标识符后跟 @ 符号,例如:name@、number@等
number@ for (i in 1..10){
}
  • 标签结合break和continue使用
        loop1@ for (i in 1..100) {
loop2@ for (j in 1..100) {
if (i == j) break@loop1
if (i % j == 0) continue@loop1
}
}
  • 标签结合return使用
    fun test5() {
var ints = arrayOf(0, 1, 2, 3, 4, 5)
/**
* 这种return其实是直接return了test5()这个方法
*/
ints.forEach {
if (it == 0) return
print(it)
}
/**
* 如果想只return到当前循环,则需要结合标签使用
*/
ints.forEach currentLoop@ {
if (it == 0) return@currentLoop
print(it)
}
}

从零开始学Kotlin基础篇系列文章

从零开始学Kotlin-控制语句(4)的更多相关文章

  1. 从零开始学Kotlin第六课

    Kotlin调用java代码: 1.如果是内部工程的类,直接调用,如果是外部的工程项目按照java的方式将jar包导入进来. 2.实例化java对象 我们之前学java的时候实例化对象是这个样子的. ...

  2. 从零开始学Kotlin第七课

    1.强制类型转换需要在后面加两个感叹号 2.如果需要在java代码调用kotlin的方法时候使用文件名+kt.方法 3.object 类名 是创建匿名内部类的写法 调用 传入class对象 4.在to ...

  3. 从零开始学Kotlin第四课

    面向对象: //妹子 性格 声音 class Girl(var chactor:String,var voice:String) fun main(args: Array<String>) ...

  4. 从零开始学Kotlin第三课

    kotlin函数和函数式表达式的简化写法: fun main(args:Array<String>) { var result=add(2,5) println(result) ///简化 ...

  5. 从零开始学Kotlin第一课

    Kotlin的方法: 一个简单的计算器: fun main(args:Array<String>){ //主函数main方法 var a=8; var b=9; println(plus( ...

  6. 从零开始学Kotlin第五课

    函数式编程入门: package EL fun main(args: Array<String>) { var names= listOf<String>("tom& ...

  7. 从零开始学Kotlin第二课

    字符串模板 fun main(args:Array<String>){ //主函数main方法 println(diaryGenerater("天安门")); } // ...

  8. 从零开始学Kotlin-泛型(8)

    从零开始学Kotlin基础篇系列文章 与 Java 一样,Kotlin 也提供泛型,为类型安全提供保证,消除类型强转的烦恼. 泛型类的基本使用 泛型,即 "参数化类型",将类型参数 ...

  9. 从零开始学Kotlin-扩展函数(10)

    从零开始学Kotlin基础篇系列文章 什么是扩展函数 扩展函数数是指在一个类上增加一种新的行为,我们甚至没有这个类代码的访问权限: Kotlin 可以对一个类的属性和方法进行扩展,且不需要继承或使用 ...

  10. 从零开始学Kotlin-枚举(9)

    从零开始学Kotlin基础篇系列文章 枚举的定义 一个类的对象是有限且固定的,这种实例有限且固定的类称为枚举类; 枚举常量用逗号分隔,每个枚举常量都是一个对象; enum class EnumDemo ...

随机推荐

  1. Netty入门(五)ChanneHandler

    本节主要讨论了 Netty 的数据处理组件 ChannelHandler. 一.Channel 生命周期 Channel 有个简单但强大的状态模型,下面是 Channel 的四个状态: Channel ...

  2. [JLOI2013]删除物品

    嘟嘟嘟 只要每一次将优先级最高的上面的物品移走,就一定能保证是最优解. 所以我们只要想办法简化这个模拟移物品的过程,看完了题解后,发现可以这么想,我们可以把两个栈头碰头的挨在一起,然后设一个指针代表两 ...

  3. Docker技术入门与实战 第二版-学习笔记-3-Dockerfile 指令详解

    前面已经讲解了FROM.RUN指令,还提及了COPY.ADD,接下来学习其他的指令 5.Dockerfile 指令详解 1> COPY 复制文件 格式: COPY  <源路径> .. ...

  4. Kubernetes1.91(K8s)安装部署过程(三)--创建高可用etcd集群

    这里的etcd集群复用我们测试的3个节点,3个node都要安装并启动,注意修改配置文件 1.TLS认证文件分发:etcd集群认证用,除了本机有,分发到其他node节点 scp ca.pem kuber ...

  5. WorldWind源码剖析系列:下载队列类DownloadQueue

    下载队列类DownloadQueue代表具有优先级的下载队列,该类的存储下载请求的数组链表专门按一定的优先级来存储下载请求的.该类的类图如下. 下载队列类DownloadQueue各个字段的含义说明如 ...

  6. #HTTP协议学习# (一)request 和response 解析

    注:本文转自:http://www.cnblogs.com/TankXiao/archive/2012/02/13/2342672.html , 粉字[]内内容为个人笔记 当今web程序的开发技术真是 ...

  7. [Noi2014]购票 BZOJ3672 点分治+斜率优化+CDQ分治

    Description  今年夏天,NOI在SZ市迎来了她30周岁的生日.来自全国 n 个城市的OIer们都会从各地出发,到SZ市参加这次盛会.全国的城市构成了一棵以SZ市为根的有根树,每个城市与它的 ...

  8. qemu安装

    1 下载qemu wget http://wiki.qemu-project.org/download/qemu-2.4.1.tar.bz2 2 解压qemu tar -jxvf qemu-2.4.1 ...

  9. FakeID签名漏洞分析及利用(二)

    本文转自:http://blog.csdn.net/l173864930/article/details/38409521 继上一次Masterkey漏洞之后,Bluebox在2014年7月30日又公 ...

  10. c# SSH ,SFTP

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...