当前位置:网站首页>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
边栏推荐
- FPGA:基础入门LED灯闪烁
- 012_SSS_ Improving Diffusion Model Efficiency Through Patching
- 登录功能和退出功能(瑞吉外卖)
- Leetcode刷题——623. 在二叉树中增加一行
- abc262-D(dp)
- 电气工程的标准是什么
- 【C语言指针】用指针提升数组的运算效率
- MySQL 中 auto_increment 自动插入主键值
- Common operations of oracle under linux and daily accumulation of knowledge points (functions, timed tasks)
- How OpenHarmony Query Device Type
猜你喜欢
![智源社区AI周刊No.92:“计算复杂度”理论奠基人Juris Hartmanis逝世;美国AI学生九年涨2倍,大学教师短缺;2022智源大会观点报告发布[附下载]](/img/e7/df5a17d372a4324d1a2120829d03e9.png)
智源社区AI周刊No.92:“计算复杂度”理论奠基人Juris Hartmanis逝世;美国AI学生九年涨2倍,大学教师短缺;2022智源大会观点报告发布[附下载]

【MySQL基础】-【数据处理之增删改】

What are the standards for electrical engineering

【OpenCV】-仿射变换

反射修改jsessionid实现Session共享

#yyds干货盘点#【愚公系列】2022年08月 Go教学课程 001-Go语言前提简介

什么是 DevOps?看这一篇就够了!

硅谷来信:快速行动,Facebook、Quora等成功的“神器”!

双因子与多因子身份验证有什么区别?

TiDB 6.0 Placement Rules In SQL Usage Practice
随机推荐
我要抓狂了。。又回到了几天不能A一道题的时候
SkiaSharp 之 WPF 自绘 投篮小游戏(案例版)
【加密解密】明文加密解密-已实现【已应用】
PPOCR 检测器配置文件参数详解
今天告诉你界面控件DevExpress WinForms为何弃用经典视觉样式
Machine Learning - Ensemble Learning
智源社区AI周刊No.92:“计算复杂度”理论奠基人Juris Hartmanis逝世;美国AI学生九年涨2倍,大学教师短缺;2022智源大会观点报告发布[附下载]
What do T and Z in the time format 2020-01-13T16:00:00.000Z represent and how to deal with them
深入理解 Istio 流量管理的超时时间设置
Chapter 5: Multithreaded Communication—wait and notify
GPU-CUDA-图形渲染分析
停电。。。烦烦烦!!!
反射修改jsessionid实现Session共享
硅谷来信:快速行动,Facebook、Quora等成功的“神器”!
【C语言指针】用指针提升数组的运算效率
《分布式云最佳实践》分论坛,8 月 11 日深圳见
GCC编译的时候头文件搜索规则
一张图看懂 SQL 的各种 join 用法!
Custom filters and interceptors implement ThreadLocal thread closure
STM32入门开发:编写XPT2046电阻触摸屏驱动(模拟SPI)