从零开始学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 ...
随机推荐
- ZOJ 4100 浙江省第16届大学生程序设计竞赛 A题 Vertices in the Pocket 线段树+并查集
正赛的时候完全没看这个题,事后winterzz告诉我他想出来的解法. 首先题意是给出n个点,m次操作. 操作有一种是连接两个点,另一种是求此时再为这个图连k条边,最少和最多能有几个联通块. 最少的求法 ...
- [转]C#操作INI文件
在很多的程序中,我们都会看到有以.ini为后缀名的文件,这个文件可以很方便的对程序配置的一些信息进行设置和读取,比如说我们在做一个程序后台登陆的时候,需要自动登录或者是远程配置数据库连接,及保存密码设 ...
- 树莓派学习笔记(5):成功实现NAS家庭服务器(流媒体播放、文件共享及下载机)
转载请注明:@小五义http://www.cnblogs.com/xiaowuyiQQ群:64770604 一.家庭服务器实现的主要功能 1.流媒体播放服务:利用DLNA实现电视.手机.电脑播放其上面 ...
- 测试计划&性能测试分析报告模板(仅供参考)
一.测试计划 1. 引言 1.1 编写目的 2. 参考文档 3. 测试目的 4. 测试范围 4.1 测试对象 4.2 需要测试的特性 4.3 无需测试的特性 5. 测试启动与结束准则 5.1 ...
- (转)CloudStack 安装及使用过程中常见问题汇总
CloudStack 安装及使用过程中常见问题汇总 在做工程项目中对CloudStack 安装及使用过程中常见的几个问题及如何解决做一个总结. 1.Windows XP虚拟 ...
- 从裸机编程到嵌入式Linux编程思想的转变------分而治之:驱动和应用程序
笔者学习嵌入式Linux也有一段时间了,很奇怪的是很多书讲驱动编程方面的知识,也有很多书将ARM9方面的知识,但是从以前51形式的(对寄存器直接操作,初始化芯片的功能模块)编程方法,和思维模式,变换为 ...
- mssql2012的分页查询
sql2102支持的分页查询 注意:以下都是先执行排序,再取行数据 select* from t_workers order by worker_id desc offset 3 rows --先 ...
- Android设备管理器漏洞(转)
一.漏洞描述 目前被称为“史上最强Android木马”的病毒Backdoor.AndroidOS.Obad.a利用Android设备管理器漏洞使用户无法通过正常方式卸载.其实该漏洞早在去年底已被发现. ...
- RESTful API设计概要
一.简介 1. 什么是REST REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移. 它首次出现在2000年Roy Fiel ...
- 20155330 《网络对抗》 Exp8 Web基础
20155330 <网络对抗> Exp8 Web基础 实验问题回答 什么是表单 表单可以收集用户的信息和反馈意见,是网站管理者与浏览者之间沟通的桥梁. 一个表单有三个基本组成部分 表单标签 ...