当前位置: 首页 > news >正文

3:kotlin 逻辑控制(Control flow)

像其他语言一样,kotlin也有循环和逻辑控制

条件判断(Conditional expressions)

kotlin使用ifwhen来进行条件判断

如果纠结选择if还是when,建议使用when,因为它更能提高程序的健壮性

if

普通写法

fun main() {val d: Intval check = trueif (check) {d = 1} else {d = 2}println(d) // 1
}

简单写法

kotlin中没有? :形式的三元表达式

fun main() {val a = 1val b = 2val res = if (a > b) a else bprintln(res) // 2
}

when

当有多个条件分支时使用when

条件和执行的逻辑用->分割

fun main() {val obj = "Hello"when (obj) {"1" -> println("One")   // 如果 obj == "1",执行当前分支"Hello" -> println("Greeting")  // 如果 obj == "Hello",执行当前分支else -> println("Unknown")  // 如果上边的所有分支都不符合,则执行当前分支}// Greeting
}

注意执行的顺序是从上而下,如果有一个条件满足了则不会进行下边的判断了

接收返回值的when

fun main() {val obj = "Hello"val result = when (obj) {"1" -> "One""Hello" -> "Greeting"else -> "Unknown"}println(result) // Greeting
}

一般情况下,else分支是必须的,除非编译器检测到上边的条件覆盖了所有可能的情况

除了上边的匹配字符串,还可以使用条件表达式

fun main() {val temp = 18val description = when {temp < 0 -> "very cold"temp < 10 -> "a bit cold"temp < 20 -> "warm"else -> "hot"}println(description) // warm
}

范围(Range)

学习循环之前先来看一下怎么创建一个Range

常见的创建Range的方式是使用..

  • 1..4 - 1,2,3,4
  • 1..<4 - 1,2,3
  • 4 downTo 1 - 4,3,2,1
  • 1..5 step 2 - 1,3,5
  • 'a'..'d' - 'a','b','c','d'
  • 'z' downTo 's' step 2 - 'z','x','v','t'

循环(Loops)

编程中最常见的两种循环结构是forwhile。使用for迭代一系列值并执行操作。使用while继续操作,直到满足特定条件。

for

fun main() {for (number in 1..5) {print(number)}
// 12345
}
fun main() {val cakes = listOf("carrot", "cheese", "chocolate")for (cake in cakes) {println("Yummy, it's a $cake cake!")}
//    Yummy, it's a carrot cake!
//    Yummy, it's a cheese cake!
//    Yummy, it's a chocolate cake!
}

while

while有两个运行方式,一种是简单的while循环

fun main() {var cakesEaten = 0while (cakesEaten < 3) {println("Eat a cake $cakesEaten")cakesEaten++}
//    Eat a cake 0
//    Eat a cake 1
//    Eat a cake 2
}

另一种是do-while

fun main() {var cakesBaked = 0do {println("Bake a cake $cakesBaked")cakesBaked++} while (cakesBaked < 3)
//    Bake a cake 0
//    Bake a cake 1
//    Bake a cake 2
}

简单while先判断条件,如果满足再去执行{}内中内,直到条件不满足为止。do-while先执行一次{}中的内容,再去判断条件。

http://www.lryc.cn/news/247674.html

相关文章:

  • Linux系统之一次性计划任务at命令的基本使用
  • 记录:Unity脚本的编写8.0
  • OpenCV | 模版匹配
  • 【算法刷题】Day7
  • 前端 | iframe框架标签应用
  • linux -系统通用命令查询
  • python炒股自动化(1),量化交易接口区别
  • LeetCode(35)螺旋矩阵【矩阵】【中等】
  • BeanUtil.copyProperties的优化与使用(解决copyProperties null值覆盖问题)
  • Redis基本操作及使用
  • python 继承父类的变量和方法
  • ubuntu22.04新机使用(换源,下载软件,安装显卡驱动,锁屏长亮)
  • 如何给shopify的网址做301跳转
  • Redis之秒杀系统
  • c++基础----new
  • Java中的mysql——面试题+答案(存储过程,外键,隔离级别,性能优化)——第23期
  • 一种新的基于物理的AlGaN/GaN HFET紧凑模型
  • uniapp基础-教程之HBuilderX基础常识篇02
  • 如何源码编译seaTunnel
  • msng病毒分析
  • Unity安装
  • 【代洋集团特惠好物:80瓦太阳能折叠包】
  • 一致性Hash算法
  • linux 下如何将/dev/nvme0n1符格式化为空盘符
  • IP地址的最后一位不可以为0或255
  • 代洋集团:太阳能智能座椅,创新能源的未来篇章
  • linux服务器安装gitlab
  • Tlog SpringBoot3.x版本无法正常打印TraceId等数据
  • 基于Spring原生框架构建原生Spring的第一个程序!
  • [个人笔记] Git的CLI笔录