博客
关于我
Kotlin学习笔记3——条件控制
阅读量:376 次
发布时间:2019-03-05

本文共 2334 字,大约阅读时间需要 7 分钟。

Kotlin学习笔记3——条件控制

前言

上一篇我们学习了Kotlin的基础语法,今天我们将深入探讨Kotlin中的条件控制机制,这是任何编程语言的核心功能之一。

IF 表达式

在Kotlin中,IF表达式是一个强大的工具,可以帮助我们根据条件执行不同的操作。Kotlin的IF表达式与Java的条件语句有些差异,但它更灵活且便捷。

基本用法

Kotlin的IF表达式可以通过以下方式使用:

var max = if (a < b) {
max = b
} else {
max = a
}
// 或者作为表达式:
val max = if (a > b) a else b

这意味着我们不需要像Java那样使用三元运算符,可以直接将结果赋值给变量。

实例演示

让我们看一个具体的例子:

fun main(args: Array
) {
var x = 0
if (x > 0) {
println("x 大于 0")
} else if (x == 0) {
println("x 等于 0")
} else {
println("x 小于 0")
}
var a = 1
var b = 2
val c = if (a >= b) a else b
println("c 的值为 $c") // 输出结果为:x 等于 0,c 的值为 2
}

通过这个例子,我们可以看到Kotlin的条件控制语句非常简洁,而且支持多个条件判断。

使用区间

Kotlin提供了in运算符,可以用来检测一个数字是否在指定的区间内。区间的格式为x…y

例如:

fun main(args: Array
) {
val x = 5
val y = 9
if (x in 1..8) {
println("x 在区间内")
} // 输入结果为:x 在区间内
}

这个表达式非常简洁,直接告诉我们x是否在1到8之间。

When表达式

When表达式在Kotlin中与IF表达式有所不同,它更像是一个多分支的选择器。它的参数和分支条件会被逐一比较,直到找到满足条件的分支。

基本用法

When表达式的基本形式如下:

when (x) {
1 -> print("x == 1")
2 -> print("x == 2")
else -> {
print("x 不是 1 ,也不是 2")
}

这里,else相当于switchdefault,如果其他分支都不满足条件,会执行else分支。

多分支处理

当有多个分支需要相同的处理方式时,我们可以将多个条件放在一起使用逗号分隔:

when (x) {
0, 1 -> print("x == 0 或 x == 1")
else -> print("otherwise")
}

这样可以简化代码,减少重复。

判断区间或集合

我们也可以使用in运算符来判断一个值是否在某个区间或集合中:

when (x) {
in 1..10 -> print("x 在该区间范围内")
in validNumbers -> print("x 是有效的")
!in 10..20 -> print("x 在该区间范围内")
else -> print("none of the above")
}

此外,Kotlin还支持检测某个值的类型:

fun hasPrefix(x: Any) = when (x) {
is String -> x.startsWith("prefix")
else -> false
}

这里,is关键字用于检测对象的类型,并自动将x转换为相应的类型。

当作为表达式使用时

当我们使用when作为表达式时,符合条件的分支值将作为整个表达式的值:

val result = when (x) {
1 -> "奇数"
2 -> "偶数"
else -> "未知"
}

这在处理多个分支时非常方便。

实例演示

让我们看一个完整的when表达式示例:

fun main(args: Array
) {
var x = 0
when (x) {
0, 1 -> println("x == 0 或 x == 1")
else -> println("otherwise")
}
when (x) {
1 -> println("x == 1")
2 -> println("x == 2")
else -> {
println("x 不是 1 ,也不是 2")
}
}
when (x) {
in 0..10 -> println("x 在该区间范围内")
else -> println("x 不在该区间范围内")
}
}

输出结果为:

x == 0 或 x == 1
x 不是 1 ,也不是 2
x 在该区间范围内

尾巴

今天的学习笔记就先到这里了。下一篇,我们将深入探讨Kotlin中的函数编程。喜欢我的文章,欢迎素质三连:点赞,评论,关注,谢谢大家!

转载地址:http://ukwwz.baihongyu.com/

你可能感兴趣的文章
Netty源码—4.客户端接入流程一
查看>>
Netty源码—4.客户端接入流程二
查看>>
Netty源码—5.Pipeline和Handler一
查看>>
Netty源码—6.ByteBuf原理二
查看>>
Netty源码—7.ByteBuf原理三
查看>>
Netty源码—7.ByteBuf原理四
查看>>
Netty源码—8.编解码原理二
查看>>
Netty源码解读
查看>>
Netty的Socket编程详解-搭建服务端与客户端并进行数据传输
查看>>
Netty相关
查看>>
Network Dissection:Quantifying Interpretability of Deep Visual Representations(深层视觉表征的量化解释)
查看>>
Network Sniffer and Connection Analyzer
查看>>
NetworkX系列教程(11)-graph和其他数据格式转换
查看>>
Networkx读取军械调查-ITN综合传输网络?/读取GML文件
查看>>
Net与Flex入门
查看>>
net包之IPConn
查看>>
NFinal学习笔记 02—NFinalBuild
查看>>
NFS共享文件系统搭建
查看>>
nfs复习
查看>>
NFS网络文件系统
查看>>