Step into Kotlin - 05 - 流程控制
2015-06-30 12:48
579 查看
目录
流程控制
条件表达式
循环
while 和 do-while
for
基本使用
用于字符串上
Range
概述
If
For
break 和 continue
摘要
if,for,Range 操作(指定步长,逆序,递减)
这种方式可以给常量赋值,有点类似 Java 中的三元操作符,此时 s 的类型为 Int
如果是下面这种混合型的,s 的类型就为 Any
因为 Kotlin 中表达式都必须有值,所以如果没有
Kotlin 在 if 语句块的最后可以自动返回最后一行表达式的值,而不需要写
用于字符串上
Range 使用特殊符号
If
在指定范围内
在指定范围外
也可结合 String 来使用
For
此表达式表示让变量
变量
除了基本的关键字
流程控制
条件表达式
循环
while 和 do-while
for
基本使用
用于字符串上
Range
概述
If
For
break 和 continue
摘要
if,for,Range 操作(指定步长,逆序,递减)
流程控制
条件表达式
if/else结构与 Java 类型,不过由于 Kotlin 面向表达式,所以可以直接将表达式赋给一个变量。
val s = if (x > 0) 1 else -1
这种方式可以给常量赋值,有点类似 Java 中的三元操作符,此时 s 的类型为 Int
如果是下面这种混合型的,s 的类型就为 Any
val s = if (x > 0) "a" else 65
因为 Kotlin 中表达式都必须有值,所以如果没有
else的话,需要引入 Unit 类
val s3: Any = if (x > 0) 1 else Unit
Kotlin 在 if 语句块的最后可以自动返回最后一行表达式的值,而不需要写
return语句
val max = if (1 < 2) { println("a") 2 } else { println("b") 1 }
循环
while 和 do-while
Kotlin 中的while和
do-while类似 Java
for
基本使用val arr = intArrayOf(1, 2, 3) for ( a in arr) { println(a) }
用于字符串上
for (s in "Hello") print(s)
Range
概述Range 使用特殊符号
..表示,可以结合 if 和 for 语句使用。
If
在指定范围内
val x = 3 val y = 10 if (x in 1..y - 1) println("OK") else println("OUT")
在指定范围外
val arr = intArrayOf(1, 2, 3, 4, 5) if ( x !in 0..arr.lastIndex) println("OUT")
也可结合 String 来使用
val str = "abcdef" if (str in "abc".."abe") { println(str) // abcdef }
For
for (x in 1..n) println(x)
此表达式表示让变量
i遍历
in右边的表达式的所有值 ( “1” 到 “n” )
变量
i不需要事先定义,循环变量的作用域会一直持续直到循环结束。
除了基本的关键字
in之外,也可以使用
step控制步长,使用
downTo进行递减操作。
for (z in 4 downTo 1) print(z) // 4321 for (z in 1..4 step 2) print(z) // 13 for (z in 4 downTo 1 step 2) print(z) // 42 for (z in (1..4).reversed()) print(z) // 4321
break 和 continue
Kotlin 提供break和
continue来退出循环,用法与 Java 相似。
相关文章推荐
- 学习版vs2010没有类向导
- C++中构造函数重载
- 在QListView中显示图标
- Struts2 零配置(二)
- Nginx七层反向代理和负载均衡
- 估算Baidu和Google的网页索引数量之比
- Newtonsoft.Json高级用法
- LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
- C/C++结构体字节对齐详解
- 数据库int类型字段长度的含义
- delphi2010 调用webservice
- [乐意黎] 学历越高越容易考过中高级会计师资格证
- 整合Open vSwitch与DNSmasq为虚拟机提供DHCP功能
- Linux驱动修炼之道-看门狗框架源码分析
- Thread: staticMetaObject
- 博客园自定义设计(二)自定义header样式
- C++ 关于MFC多线程编程的注意事项
- Linux 内存 buffer 和 cache 的区别
- stat不支持两个参数问题
- 获取网络时间