Android修行手册之Kotlin-【条件语句】、【循环控制】篇

简介: 众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣!!!

👉关于作者

众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣 !!!

专注于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


👉其他

📢作者:小空和小芝中的小空

📢转载说明-务必注明来源:

https://zhima.blog.csdn.net/

https://www.zhihu.com/people/zhimalier

https://juejin.cn/user/4265760844943479

📢这位道友请留步☁️,我观你气度不凡,谈吐间隐隐有王者霸气💚,日后定有一番大作为📝!!!旁边有点赞👍收藏🌟今日传你,点了吧,未来你成功☀️,我分文不取,若不成功⚡️,也好回来找我。

相关文章
|
2月前
|
设计模式 Android开发 Kotlin
Android经典实战之Kotlin委托模式和by关键字
本文介绍了Kotlin中`by`关键字在类及属性委托中的运用,通过实例展示了如何利用类委托简化接口实现,以及如何借助标准与自定义属性委托管理属性的读写操作。通过`by`关键字的支持,Kotlin使得委托模式的实现更为直观且高效。
50 4
|
2月前
|
缓存 安全 Android开发
Android经典实战之用Kotlin泛型实现键值对缓存
本文介绍了Kotlin中泛型的基础知识与实际应用。泛型能提升代码的重用性、类型安全及可读性。文中详细解释了泛型的基本语法、泛型函数、泛型约束以及协变和逆变的概念,并通过一个数据缓存系统的实例展示了泛型的强大功能。
33 2
|
16天前
|
Android开发 Kotlin
Android经典面试题之Kotlin的==和===有什么区别?
本文介绍了 Kotlin 中 `==` 和 `===` 操作符的区别:`==` 用于比较值是否相等,而 `===` 用于检查对象身份。对于基本类型,两者行为相似;对于对象引用,`==` 比较值相等性,`===` 检查引用是否指向同一实例。此外,还列举了其他常用比较操作符及其应用场景。
169 93
|
23天前
|
安全 Android开发 开发者
探索安卓开发的未来:Kotlin的崛起与Flutter的挑战
在移动开发的广阔天地中,安卓平台始终占据着举足轻重的地位。随着技术的不断进步和开发者需求的多样化,Kotlin和Flutter成为了改变游戏规则的新玩家。本文将深入探讨Kotlin如何以其现代化的特性赢得开发者的青睐,以及Flutter凭借跨平台的能力如何挑战传统的安卓开发模式。通过实际案例分析,我们将揭示这两种技术如何塑造未来的安卓应用开发。
52 6
|
20天前
|
Android开发 开发者 Kotlin
告别AsyncTask:一招教你用Kotlin协程重构Android应用,流畅度飙升的秘密武器
【9月更文挑战第13天】随着Android应用复杂度的增加,有效管理异步任务成为关键。Kotlin协程提供了一种优雅的并发操作处理方式,使异步编程更简单直观。本文通过具体示例介绍如何使用Kotlin协程优化Android应用性能,包括网络数据加载和UI更新。首先需在`build.gradle`中添加coroutines依赖。接着,通过定义挂起函数执行网络请求,并在`ViewModel`中使用`viewModelScope`启动协程,结合`Dispatchers.Main`更新UI,避免内存泄漏。使用协程不仅简化代码,还提升了程序健壮性。
42 1
|
24天前
|
安全 Java Android开发
探索安卓应用开发的新趋势:Kotlin和Jetpack Compose
在安卓应用开发领域,随着技术的不断进步,新的编程语言和框架层出不穷。Kotlin作为一种现代的编程语言,因其简洁性和高效性正逐渐取代Java成为安卓开发的首选语言。同时,Jetpack Compose作为一个新的UI工具包,提供了一种声明式的UI设计方法,使得界面编写更加直观和灵活。本文将深入探讨Kotlin和Jetpack Compose的特点、优势以及如何结合使用它们来构建现代化的安卓应用。
34 4
|
2月前
|
算法 安全 数据安全/隐私保护
Android经典实战之常见的移动端加密算法和用kotlin进行AES-256加密和解密
本文介绍了移动端开发中常用的数据加密算法,包括对称加密(如 AES 和 DES)、非对称加密(如 RSA)、散列算法(如 SHA-256 和 MD5)及消息认证码(如 HMAC)。重点讲解了如何使用 Kotlin 实现 AES-256 的加密和解密,并提供了详细的代码示例。通过生成密钥、加密和解密数据等步骤,展示了如何在 Kotlin 项目中实现数据的安全加密。
58 1
|
2月前
|
算法 安全 数据安全/隐私保护
Android经典实战之常见的移动端加密算法和用kotlin进行AES-256加密和解密
本文介绍了移动端开发中常用的数据加密算法,包括对称加密(如 AES 和 DES)、非对称加密(如 RSA)、散列算法(如 SHA-256 和 MD5)及消息认证码(如 HMAC)。重点展示了如何使用 Kotlin 实现 AES-256 的加密和解密,提供了详细的代码示例。
39 2
|
2月前
|
Java 调度 Android开发
Android经典实战之Kotlin的delay函数和Java中的Thread.sleep有什么不同?
本文介绍了 Kotlin 中的 `delay` 函数与 Java 中 `Thread.sleep` 方法的区别。两者均可暂停代码执行,但 `delay` 适用于协程,非阻塞且高效;`Thread.sleep` 则阻塞当前线程。理解这些差异有助于提高程序效率与可读性。
51 1
|
23天前
|
调度 Android开发 开发者
探索安卓开发中的新技术:Kotlin协程
【9月更文挑战第9天】本文将深入探讨Kotlin协程在安卓开发中的应用,揭示其如何优雅地处理异步任务。我们将从基础概念入手,逐步深入到实际开发场景,最后通过代码示例直观展示协程的魔力。无论你是初学者还是有经验的开发者,这篇文章都将为你打开一扇通往更高效、更简洁代码的大门。
下一篇
无影云桌面