当前位置:网站首页>Android development with Kotlin programming language II Conditional control
Android development with Kotlin programming language II Conditional control
2022-08-05 10:58: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
}
This also shows that I don't need likeJavaThat kind has a ternary operator,Because we can use it for simple implementation:
val c = if (condition) a else b
实例说明 (Android studio中)
The following code can be noticed,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
边栏推荐
- 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
- Chapter 5: Activiti process shunting judgment, judging to go to different task nodes
- Image segmentation model - a combination of segmentation_models_pytorch and albumations to achieve multi-category segmentation
- 记2022年七夕感慨
- R语言ggplot2可视化:可视化密度图(Density plot)、可视化多个分组的密度图、数据点分布在箱图中间、添加主标题、副标题、题注信息
- Discover the joy of C language
- nyoj86 找球号(一) set容器和二分 两种解法
- 登录功能和退出功能(瑞吉外卖)
- 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
- 硅谷来信:快速行动,Facebook、Quora等成功的“神器”!
猜你喜欢
随机推荐
SMB + SMB2: Accessing shares return an error after prolonged idle period
张朝阳对话俞敏洪:一边是手推物理公式,一边是古诗信手拈来
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
The fuse: OAuth 2.0 four authorized login methods must read
上位机开发C#语言:模拟STC串口助手接收单片机发送数据
Android development with Kotlin programming language - basic data types
一张图看懂 SQL 的各种 join 用法!
负载均衡应用场景
365天挑战LeetCode1000题——Day 050 在二叉树中增加一行 二叉树
Opencv图像缩放和平移
这份阿里强推的并发编程知识点笔记,将是你拿大厂offer的突破口
牛刀小试基本语法,Go lang1.18入门精炼教程,由白丁入鸿儒,go lang基本语法和变量的使用EP02
时间格式2020-01-13T16:00:00.000Z中的T和Z分别表示什么,如何处理
nyoj754 黑心医生 结构体优先队列
字节一面:TCP 和 UDP 可以使用同一个端口吗?
The host computer develops C# language: simulates the STC serial port assistant to receive the data sent by the microcontroller
L2-042 老板的作息表
Login function and logout function (St. Regis Takeaway)
Import Excel/CSV from Sub Grid within Dynamics 365
如何测试一下现场的备机失败,转发主机的场景?