当前位置:网站首页>Android 开发用 Kotlin 编程语言 二 条件控制
Android 开发用 Kotlin 编程语言 二 条件控制
2022-08-05 10:53:00 【AaVictory.】
条件语句
1、IF 表达式
// 传统用法
var max = a
if (a < b) max = b
// 使用 else
var max: Int
if (a > b) {
max = a
} else {
max = b
}
// 作为表达式
val max = if (a > b) a else b
- 我们也可以把 IF 表达式的结果赋值给一个变量。
val max = if (a > b) {
print("Choose a")
a
} else {
print("Choose b")
b
}
这也说明我也不需要像Java那种有一个三元操作符,因为我们可以使用它来简单实现:
val c = if (condition) a else b
实例说明 (Android studio中)
下面代码可以注意到,kotlin结尾不需要加分号(;)
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
test()//调用测试方法
}
fun test(){
var x = 10
if(x>10){
println("x 大于 10")
}else if(x==10){
println("x 等于 10")
}else{
println("x 小于 10")
}
var a = 1
var b = 2
//如果a>b 返回a 否则返回b
val c = if (a>=b) a else b
println("c 的值为 $c")
}
}
- 控制台输出结果如下:
使用区间
使用 in 运算符来检测某个数字是否在指定区间内,区间格式为 x…y :
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
test()
}
fun test() {
val x = 5
if (x in 1..8) {
println("x 在区间内")
}
}
}
- 输出结果如下:
x 在区间内
When 表达式
when 将它的参数和所有的分支条件顺序比较,直到某个分支满足条件。
when 既可以被当做表达式使用也可以被当做语句使用。如果它被当做表达式,符合条件的分支的值就是整个表达式的值,如果当做语句使用, 则忽略个别分支的值。
when 类似其他语言的 switch 操作符。其最简单的形式如下
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
test()
}
fun test(){
val x = 5
when (x) {
1 ->
println("x == 1")
2 ->
println("x == 2")
else -> {
//注意这个块
println("x 不是 1 ,也不是 2")
}
}
}
}
- 输出结果如下:
x 不是 1 ,也不是 2
在 when 中,else 同 switch 的 default。如果其他分支都不满足条件将会求值 else 分支。
如果很多分支需要用相同的方式处理,则可以把多个分支条件放在一起,用逗号分隔:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
test()
}
fun test(){
val x = 5
when (x) {
1,5 ->
println("x == 1或者 x==5")
2 ->
println("x == 2")
else -> {
//注意这个块
println("x 不是 1 ,也不是 2")
}
}
}
}
- 输出结果如下:
x == 1或者 x==5
边栏推荐
- Import Excel/CSV from Sub Grid within Dynamics 365
- 双因子与多因子身份验证有什么区别?
- #yyds干货盘点#【愚公系列】2022年08月 Go教学课程 001-Go语言前提简介
- PCB layout must know: teach you to correctly lay out the circuit board of the op amp
- FPGA:基础入门LED灯闪烁
- 深入理解 Istio 流量管理的超时时间设置
- 拓朴排序例题
- Image segmentation model - a combination of segmentation_models_pytorch and albumations to achieve multi-category segmentation
- 2022杭电杯超级联赛(5)
- Header file search rules when compiling with GCC
猜你喜欢
苹果Meta都在冲的Pancake技术,中国VR团队YVR竟抢先交出产品答卷
智能算力的枢纽如何构建?中国云都的淮海智算中心打了个样
多线程(进阶) - 2.5w字总结
张朝阳对话俞敏洪:一边是手推物理公式,一边是古诗信手拈来
Create a Dapp, why choose Polkadot?
abc262-D(dp)
FPGA:开发环境Vivado的使用
深入理解 Istio 流量管理的超时时间设置
【OpenCV】-仿射变换
This notebook of concurrent programming knowledge points strongly recommended by Ali will be a breakthrough for you to get an offer from a big factory
随机推荐
nyoj86 找球号(一) set容器和二分 两种解法
Login function and logout function (St. Regis Takeaway)
Detailed explanation of PPOCR detector configuration file parameters
CenOS MySQL入门及安装
如何测试一下现场的备机失败,转发主机的场景?
华为分析&联运活动,助您提升游戏总体付费
反射修改jsessionid实现Session共享
数分面试(一)----与业务相关
Opencv图像缩放和平移
Leetcode刷题——623. 在二叉树中增加一行
60行从零开始自己动手写FutureTask是什么体验?
Go compilation principle series 6 (type checking)
API 网关简述
2022技能大赛训练题:交换机snmp配置
The fuse: OAuth 2.0 four authorized login methods must read
微信小程序标题栏封装
PostgreSQL 2022 Report: Rising popularity, open source, reliability and scaling key
PostgreSQL 2022 报告:流行度上涨,开源、可靠性和扩展是关键
R语言使用yardstick包的pr_curve函数评估多分类(Multiclass)模型的性能、查看模型在多分类每个分类上的ROC曲线(precision(精准率),R代表的是recall(召回率)
多线程(进阶) - 2.5w字总结