当前位置:网站首页>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
边栏推荐
- 如何修改管理工具client_encoding
- Go compilation principle series 6 (type checking)
- 012年通过修补_sss_提高扩散模型效率
- 登录功能和退出功能(瑞吉外卖)
- 一张图看懂 SQL 的各种 join 用法!
- 用户考试分数大于单科科目平均分的查询
- 【深度学习】mmclassification mmcls 实战多标签分类任务教程,分类任务
- The fuse: OAuth 2.0 four authorized login methods must read
- Login function and logout function (St. Regis Takeaway)
- trie树模板
猜你喜欢
结合“xPlus”探讨软件架构的创新与变革
张朝阳对话俞敏洪:一边是手推物理公式,一边是古诗信手拈来
脱光衣服待着就能减肥,当真有这好事?
What are the standards for electrical engineering
登录功能和退出功能(瑞吉外卖)
sqlserver编写通用脚本实现获取一年前日期的方法
RT - Thread record (a, RT, RT Thread version - Thread Studio development environment and cooperate CubeMX quick-and-dirty)
FPGA: Use of the development environment Vivado
苹果Meta都在冲的Pancake技术,中国VR团队YVR竟抢先交出产品答卷
API 网关简述
随机推荐
反射修改jsessionid实现Session共享
SQL外连接之交集、并集、差集查询
FPGA:基础入门按键控制LED灯
GPU-CUDA-图形渲染分析
sqlserver编写通用脚本实现获取一年前日期的方法
Google启动通用图像嵌入挑战赛
L2-042 老板的作息表
STM32入门开发:编写XPT2046电阻触摸屏驱动(模拟SPI)
Chapter 5: Activiti process shunting judgment, judging to go to different task nodes
CenOS MySQL入门及安装
《分布式云最佳实践》分论坛,8 月 11 日深圳见
Common operations of oracle under linux and daily accumulation of knowledge points (functions, timed tasks)
API 网关简述
uniapp connect ibeacon
SkiaSharp 之 WPF 自绘 投篮小游戏(案例版)
MySQL 中 auto_increment 自动插入主键值
[Strong Net Cup 2022] WP-UM
A small test of basic grammar, Go lang1.18 introductory refining tutorial, from Bai Ding to Hongru, basic grammar of go lang and the use of variables EP02
Custom filters and interceptors implement ThreadLocal thread closure
一张图看懂 SQL 的各种 join 用法!