小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
👉关于作者
众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣!!!
专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等)
欢迎关注公众号【空名先生】获取更多资源和交流!
👉前提
当前环境
2021年10月8日最新下载2020.3.1 Patch 2 版本
👉实践过程
😜条件语句
基本所有的编程语言都通用,这一点差别没有【if】【else】【else if】。
只不过多了一点就是可以直接将条件语句if前面赋值。前提是返回的类型一致。
var TempTwo = 10;
var TempThree = if (TempTwo == 10) {
"返回的相等"
} else {
"返回的不等"
}
Log.e("TAG", "芝麻粒儿输出9: $TempThree")
Kotlin中没有switch用法,而是when语法,其中else就类似switch的default,其他分支不满足走这个else,而如果是多个判断相同的处理,Java的switch中是去掉break,when是直接用逗号分割。
var TempFour = 8;
when (TempFour) {
in 1..5 -> {
Log.e("TAG", "芝麻粒儿输出10: 可以只用in 判断是否在一个区间内")
}
2,3,4->{
Log.e("TAG", "芝麻粒儿输出10: 变量2或3或4都走这")
}
5 -> {
Log.e("TAG", "芝麻粒儿输出10: 她会判断是5还是8")
}
8 -> {
Log.e("TAG", "芝麻粒儿输出10: 变量是8所以走着")
}
else -> {
Log.e("TAG", "芝麻粒儿输出10: 上面都不走走着,类似switch的default")
}
//判断的类型需要和when括号里面的一致
//"如果是字符"->{}
}
唉,关于when的用法还有一些,感觉使用概率不大就不提了,但是这是个重点哦。题外话:整的花里胡哨的,感觉不如Java易懂。洁是洁了,但并不简单啊,还得想一会才能搞明白意思。
😜循环控制
循环是代码中用的很频繁的一种控制了,在Kotlin中循环虽然也是for关键字,但里面的自增自减有很大不同
var listThree = arrayListOf<String>()
listThree.add("这是")
listThree.add("数组")
listThree.add("List")
for (idnex in 1 until 10) {
//这是1-10循环 等同于for (int i = 1; i < 10; i++)
}
for (idnex in 10 downTo 1) {
//这是1-10循环 等同于for (int i = 10; i >0; i--)
}
for (idnex in 1..10) {
//这是1-10循环 等同于for (int i = 1; i <= 10; i++)
}
for (index in 1..10 step 2) {
//这是循环以2自增for (int i = 1; i <= 10; i+=2)
}
for (intss in listThree) {
Log.e("TAG", "芝麻粒儿循环: $intss")
}
for (intss in listThree.indices) { //得到的是角标位置index
Log.e("TAG", "芝麻粒儿循环: " + listThree[intss])
}
while 与 do...while 循环和Java没有什么不同。
返回和跳转
支持Java中return break continue这些。语法也没差异,但是多了个标签功能,也就是break continue可以跳转到你指定的循环,比如某个五循环的嵌套,默认break continue这些只能返回当前循环,但是用上标签她们可以任意的跳出向上的循环:比如直接跳出所有循环。
标签是以你随便起名+@符号组成的
如下:
one@ for (i in 1..100) {
Log.e("TAG", "芝麻粒儿循环i: $i")
two@ for (j in 1..100) {
if (j > 2) {
Log.e("TAG", "芝麻粒儿循环j: $j")
//当满足j>2的时候,break因为是@one,则直接跳出这两个循环
break@one
}
}
}
仅仅输出这两个:
2021-10-13 17:08:29.820 10437-10437/cn.appstudy E/TAG: 芝麻粒儿循环i: 1
2021-10-13 17:08:29.820 10437-10437/cn.appstudy E/TAG: 芝麻粒儿循环j: 3
👉其他
📢作者:小空和小芝中的小空
📢转载说明-务必注明来源:芝麻粒儿 的个人主页 - 专栏 - 掘金 (juejin.cn)
📢欢迎点赞👍收藏🌟留言📝