Kotlin的基本语法2

Android  Kotlin  2024年9月14日 pm3:05发布3周前更新 91es.com站长
45 0 0

前言

记录一下Kotlin基本语法2,主要涉及选择结构语句循环结构语句区间等,记录于此,方便自己查阅。

正文

选择结构语句

选择结构语句分为if条件语句和when条件语句。

if条件语句

if条件语句分为3种语法格式。

if语句

if语句是指如果满足某种条件,则进行该条件下的某种处理。

var mA = 100
var mB = 200
var max: Int
if (mA > mB) {
    max = mA
}
if…else语句

if…else语句是指如果满足某种条件,就进行该条件下的某种处理,否则就进行另一种处理。

var mA = 100
var mB = 200
var max: Int
if (mA > mB) {
    max = mA
} else {
    max = mB
}

还可以简写

max = if (mA > mB) mA else mB
if…else if…else语句

if…else if…else语句用于对多个条件进行判断,进行多种不同的处理。

var mA = 100
var level: Int
if (mA >= 100) {
    level = 2
} else if (mA > 60) {
    level = 1
} else {
    level = 0
}
when条件语句

when条件语句是一种很常用的选择语句。和if条件语句不同,它只能针对某个表达式的值做出判断,从而决定程序执行哪一段代码。

var value: Float = 90F
when {
    value >= 100F -> Log.d(TAG, "test: 非常优秀")
    value in 90F..<100F -> Log.d(TAG, "test: 优秀")
    value in 60F..<90F -> Log.d(TAG, "test: 不错 ")
    value < 60F -> Log.d(TAG, "test: 加油! ")
}
var day: Int = 3
var week = when (day) {
    7 -> "周日"
    6 -> "周六"
    5 -> "周五"
    4 -> "周四"
    3 -> "周三"
    2 -> "周二"
    1 -> "周一"
    else -> "错误值"
}
var day: Int = 89
when (day) {
    in 90..100 -> "Very Good"
    in 70..<90 -> "Good"
    in 60..<70 -> "Ok"
    else -> "come on"
}

循环结构语句

循环语句分为while循环语句、do…while循环语句、for循环语句和forEach循环语句4种。

while循环语句

while语句会反复地进行条件判断,只要条件成立,{}内的执行语句就会执行,直到条件不成立,while循环结束。

var cout: Int = 8
while (cout > 0) {
    println("$cout")
    cout--
}
do…while循环语句

跟while差不多,但do…while中的循环条件是否成立,循环体都会执行一次。

var cout: Int = 8
do {
    println("$cout")
    cout--
} while (cout > 0)
for循环语句

已知循环次数进行遍历。

for (i in 0..10) {
    Log.d(TAG, "test: $i")
}
forEach循环语句

forEach循环语句时Kotlin中比较常用的一种循环方式。

调用者可以是数组或集合。

var mString = "百度一下"
mString.forEach {
    Log.d(TAG, "test : $it ")
}

输出结果

test : 百 
test : 度 
test : 一 
test : 下

还有个带索引的forEachIndexed()

mString.forEachIndexed { index, c ->
    Log.d(TAG, "test :  $index -> $c")
}

跳转语句

跳转语句有break语句和continue语句。

'break' and 'continue' are only allowed inside a loop

break语句

break语句用在循环语句中,作用是跳出循环语句。

for (i in 0..10) {
    if (i == 6) {
        break
    }
    Log.d(TAG, "test: $i ")
}

当i等于6时不在打印,跳出for循环

test: 0 
test: 1 
test: 2 
test: 3 
test: 4 
test: 5
continue语句

continue语句用在循环语句中,它的作用是终止本次循环,执行下一次循环。

for (i in 0..5) {
    if (i == 3) {
        continue
    }
    Log.d(TAG, "test: $i ")
}

当i等于3时跳过,循环+1继续执行。也就是不打印3的值。

test: 0 
test: 1 
test: 2 
test: 4 
test: 5

区间

区间通常是指一类数据的集合。

比如,0≤a≤10的实数组成的一个集合是一个区间,它包含了0~10的所有实数。

区间分正向区间和逆向区间。

  1. 正向区间 [1,5] 从小到大

  2. 逆向区间 [5,1] 从大到小

正向区间
方式一:..

闭包区间[1,5]

for (i in 0..5) {
    Log.d(TAG, "test: $i ")
}
test: 1
test: 2
test: 3
test: 4
test: 5
方式二:rangeTo

闭包区间[1,5]

for (i in 1.rangeTo( 5)) {
    Log.d(TAG, "test: $i ")
}

同上。

方式三:until

这个是半包区间[1,5)

for (i in 1 until(5) ) {
    Log.d(TAG, "test: $i ")
}
或
for (i in 1 until 5 ) {
    Log.d(TAG, "test: $i ")
}
test: 1
test: 2
test: 3
test: 4
逆向区间
for (i in 5 downTo 1 ) {
    Log.d(TAG, "test: $i ")
}

区间为[5,1]

输出

test: 5 
test: 4 
test: 3 
test: 2 
test: 1
步长

不论是正向还是逆向区间默认步长都是1,也就是+1或-1进行变化。

可以通过step(step:Int)函数改变步长。

rangeTo()不支持改变步长

// .. 
for (i in 1 ..5 step 2 ) {
    Log.d(TAG, "test1: $i ")
}

// until
for ( i in 1 until ( 5) step 2){
    Log.d(TAG, "test2: $i ")
}

// downTo
for (i in 5 downTo 1  step 2) {
    Log.d(TAG, "test3: $i ")
}

参考文章

  1. 《Kotlin从基础到实战》

 历史上的今天

  1. 2023: Math.random()随机数(0条评论)
  2. 2022: Android双屏异显(Presentation)的简单使用(0条评论)
  3. 2019: 朱自清:正义(0条评论)
版权声明 1、 本站名称: 91易搜
2、 本站网址: 91es.com3xcn.com
3、 本站内容: 部分来源于网络,仅供学习和参考,若侵权请留言
3、 本站申明: 个人流水账日记,内容并不保证有效

暂无评论

暂无评论...

随机推荐

[摘]PCM文件转WAV文件

一、WAV和PCM的区别和联系在Android平台上要进行音频编辑操作(比如裁剪,插入,合成等),通常都是需要将音频文件解码为WAV格式的音频文件或者PCM文件。那么WAV和PCM之间有什么关系,这里有必要了解一下。PCM(Pulse Code Modulation—-脉码调制录音)。所谓PC...

彼得.B.巴赫:失去爱人的滋味

布宜诺斯艾利斯的街灯要比纽约的街灯暗得多,这是我们在阿根廷的半年里最深刻的体会。我们租用的车子老旧,车身落满了这座城市的灰尘,前挡风玻璃更加遮蔽了射进来的光。当我们驾车离开当地医院,在第一个路口等红灯时,我打破了我对露丝许下的两个最重要的结婚誓言:第一,我以一个医生的口吻和她说了话;第二,我欺骗了她...

食指:相信未来

当蜘蛛网无情地查封了我的炉台当灰烬的余烟叹息着贫困的悲哀我依然固执地铺平失望的灰烬用美丽的雪花写下:相信未来 当我的紫葡萄化为深秋的露水当我的鲜花依偎在别人的情怀我依然固执地用凝霜的枯藤在凄凉的大地上写下:相信未来 我要用手指那涌向天边的排浪我要用手掌那托...

张枣:镜中

只要想起一生中后悔的事梅花便落了下来 比如看她游泳到河的另一岸比如登上一株松木梯子危险的事固然美丽 不如看她骑马归来面颊温暖羞涩。低下头,回答着皇帝 一面镜子永远等候她让她坐到镜中常坐的地方望着窗外,只要想起一生中后悔的事梅花便落满了南山

wordpress隐藏文章的部分内容,登录可见

前言隐藏文章的部分内容,需要注册登录网站后可见正文下面是实现代码和使用方式。function.php 末尾/** * WordPress 只允许已登录的用户查看文章内容 */add_shortcode( 'members_only', 'members_only_shortcode...

聂鲁达:雨

不,女王最好也不要认出你的面孔,这更甜美这方式,我的爱,远比偶像更甜美,你的头发的重量在我手中,你还记得吗?芒果树的花朵落在你的发间?这些手指不像洁白的花瓣:看看它们,它们像根,它们像石头击中正滑动的蝎子。别害怕,我们正在等待雨的降临,赤裸着,雨,正同样地降临在马努塔拉山上。就...