从零开始学Kotlin-控制语句(4)
从零开始学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)的更多相关文章
- 从零开始学Kotlin第六课
		Kotlin调用java代码: 1.如果是内部工程的类,直接调用,如果是外部的工程项目按照java的方式将jar包导入进来. 2.实例化java对象 我们之前学java的时候实例化对象是这个样子的. ... 
- 从零开始学Kotlin第七课
		1.强制类型转换需要在后面加两个感叹号 2.如果需要在java代码调用kotlin的方法时候使用文件名+kt.方法 3.object 类名 是创建匿名内部类的写法 调用 传入class对象 4.在to ... 
- 从零开始学Kotlin第四课
		面向对象: //妹子 性格 声音 class Girl(var chactor:String,var voice:String) fun main(args: Array<String>) ... 
- 从零开始学Kotlin第三课
		kotlin函数和函数式表达式的简化写法: fun main(args:Array<String>) { var result=add(2,5) println(result) ///简化 ... 
- 从零开始学Kotlin第一课
		Kotlin的方法: 一个简单的计算器: fun main(args:Array<String>){ //主函数main方法 var a=8; var b=9; println(plus( ... 
- 从零开始学Kotlin第五课
		函数式编程入门: package EL fun main(args: Array<String>) { var names= listOf<String>("tom& ... 
- 从零开始学Kotlin第二课
		字符串模板 fun main(args:Array<String>){ //主函数main方法 println(diaryGenerater("天安门")); } // ... 
- 从零开始学Kotlin-泛型(8)
		从零开始学Kotlin基础篇系列文章 与 Java 一样,Kotlin 也提供泛型,为类型安全提供保证,消除类型强转的烦恼. 泛型类的基本使用 泛型,即 "参数化类型",将类型参数 ... 
- 从零开始学Kotlin-扩展函数(10)
		从零开始学Kotlin基础篇系列文章 什么是扩展函数 扩展函数数是指在一个类上增加一种新的行为,我们甚至没有这个类代码的访问权限: Kotlin 可以对一个类的属性和方法进行扩展,且不需要继承或使用 ... 
- 从零开始学Kotlin-枚举(9)
		从零开始学Kotlin基础篇系列文章 枚举的定义 一个类的对象是有限且固定的,这种实例有限且固定的类称为枚举类; 枚举常量用逗号分隔,每个枚举常量都是一个对象; enum class EnumDemo ... 
随机推荐
- Linux下安装与配置snmp服务
			一.安装snmp服务 1.检查系统是否已经安装snmp的rpm包 以下是安装snmp服务需要的rpm包: libsensors3-2.10.6-55.el5.i386.rpm lm_sensors-2 ... 
- UART串口通信
			#include "sys.h" #include "delay.h" #include "usart.h" u8 rdata[]; UAR ... 
- cocoapods 报错
			1.[!] ERROR: Parsing unable to continue due to parsing error: contained in the file located at xxx/x ... 
- Taints和Tolerations -- 污点- 容忍
			1.taint 定义在node上,排斥pod 2.toleration定义在pod中,容忍pod 3.可以在命令行为Node节点添加Taints: kubectl taint nodes node1 ... 
- gdb中信号
			信号(Signals) 信号是一种软中断,是一种处理异步事件的方法.一般来说,操作系统都支持许多信号.尤其是UNIX,比较重要应用程序一般都会处理信号.UNIX定义了许 多信号,比如SIGINT表示中 ... 
- Android Device Monitor 文件管理的常见问题 - z
			Android Device Monitor 是 Android Studio 中用于监测模拟器或真机运行状态的一款开发者工具.但开发者在使用它的过程中往往会遇到很多问题,尤其对于新手.本文分析了实际 ... 
- 在Docker中安装.NET Core(使用命令行工具)
			在Docker中安装.NET Core目前共有两种方法:1,使用命令行工具安装2,使用VS2017来安装 本文主要介绍使用命令行工具来安装: 1,安装Docker(如果本机已经有Docker环境,可以 ... 
- 20155338 《网络攻防》Exp5 MSF基础应用
			20155338 <网络攻防>Exp5 MSF基础应用 基础问题回答 1. 用自己的话解释什么是exploit,payload,encode? exploit将真正要负责攻击的代码传送到靶 ... 
- adr adrl ldr mov总结整理
			ADR这是一条小范围的地址读取伪指令,它将基于PC的相对偏移的地址值读到目标寄存器中. 使用的格式:ADR register,exper. 在编译源程序时,汇编器首先计算出当前PC值( ... 
- 蓝牙disable流程简述
			蓝牙关闭的流程比打开流程要简单,主要就是一些profile的断连以及协议栈相关结构的释放. 这里简单说一下其流程,就直接从协议栈的disable的接口说起了. static int disable(v ... 
