阅读 88

Kotlin 进阶之路3 控制流与函数

1.控制流


/**  *用来检查和运算各种条件和逻辑的组合,控制App的运行流向  * 循环:for,while 及循环控制  * if:二元判断  * when:细致化判断  * */ fun main(args: Array<String>) {     println("----------------依次操作一个序列(如集合类型)中的每一项----------------")     //for:1.依次操作一个序列(如集合类型)中的每一项,执行次数是可预测的     val numbers = arrayOf(1, 2, 3, 4)     for (number in numbers) {         println(number)     }     println("----------------重复执行----------------")     // 2.重复执行:for(a in 1..10){//操作}     for (n in 1..3) {         println(n)     }     println("----------------while:循环执行----------------")     //while:循环执行一系列操作,直到条件不成立,适合执行次数未知的场合     var number = 1     while (number < 5) {         number++         println("hello")     }     //循环中的控制:continue 结束本次循环 ,break 结束整个循环     println("----------------结束本次循环:continue----------------")     val numbers2 = arrayOf(1, 2, 3, 4)     for (number in numbers2) {         if (number == 2) {             break         }         println(number)     }     println("----------------结束整个循环:break----------------")     var number2 = 1     while (number2 < 5) {         number2++         if (number2 == 3) {             break         }         println("hello")     }     //if:条件判断语句,整合语句本身是一个表达式     println("----------------条件判断语句:if----------------")     val a = 3     val b = 5     val result = if (a > b) "a大于b" else "a小于b"     println(result)     //when:可对某个变量的大小/范围/值表达式/类型等进行判断     println("----------------条件判断语句:if----------------")     val c = 11     when (c) {         in 0..10 -> {             println("在0到10之间")         }         11,13,15 -> {             println("属于11,13,15中的值")         }         is Int -> {             println("c属于整数")         }         else -> {             println("c属于String类型")         }     } } 复制代码


----------------依次操作一个序列(如集合类型)中的每一项---------------- 1 2 3 4 ----------------重复执行---------------- 1 2 3 ----------------while:循环执行---------------- hello hello hello hello ----------------结束本次循环:continue---------------- 1 ----------------结束整个循环:break---------------- hello ----------------条件判断语句:if---------------- a小于b ----------------条件判断语句:if---------------- 属于11,13,15中的值 复制代码

2.函数


/**  * 函数是有名字的一段代码  * 包含参数和返回值(可选),参数可以默认值  */ fun main(args: Array<String>) {     //F1函数名看文档     //调用时可打参数名,可读性更好(但调用Java函数无效)     println("----------------类似于C++ 给参数一个默认值----------------")     val a = add(3)     println(a)     println("----------------正常调用----------------")     val b = add(3, 5)     println(b)     println("----------------可变参数 传递元素----------------")     println(sum(1,2,3,4,20))     println("----------------可变参数 传递数组*Array----------------")     val c = intArrayOf(1,2,3,4,20)     println(sum(*c)) } /**  * Any 任意类型  * Int 整型  * : Int 意味着返回整型  */ fun add(x: Int, y: Int = 1): Int {     return x + y } //可变参数修饰符vararg fun sum(vararg x: Int): Int {     var total = 0     for (i in x) {         total += i     }     return total } 复制代码


----------------类似于C++ 给参数一个默认值---------------- 4 ----------------正常调用---------------- 8 ----------------可变参数 传递元素---------------- 30 ----------------可变参数 传递数组*Array---------------- 30 复制代码

3.初识lambda与高阶函数


/**  * 高阶函数:1参数或返回值的类型是函数型  * 函数型:(参数) -> 返回值  * lambda:一种无名函数的简写 { (参数) -> 函数执行语句}  *        其它语言称闭包,即有能力访问其自身范围外的变量  */ fun main(args: Array<String>) {     //高阶函数:描述任务的结果,而不是使用循环详细的推算     println("----------------map:常用与对集合类型的元素类型整体转变----------------")     //map:常用与对集合类型的元素类型整体转变     //其lambda中参数的约定称为it     val a = arrayOf(1,2,3,4,5,6,7,8)     val b = a.map { "变为1$it" }     for (s in b){         println(s)     }     println("----------------filter:对集合类型进行筛选----------------")     //filter:对集合类型进行筛选     val c = a.filter { it %2 ==0 }     for (i in c) {         println(i)     }     println("----------------filter使用:对筛选数求和----------------")     var sum = 0     a.filter { it %2 ==0 }.forEach{         sum+=it         println(it)     }     println("求和:$sum") } 复制代码


----------------map:常用与对集合类型的元素类型整体转变---------------- 变为11 变为12 变为13 变为14 变为15 变为16 变为17 变为18 ----------------filter:对集合类型进行筛选---------------- 2 4 6 8 ----------------filter使用:对筛选数求和---------------- 2 4 6 8 求和:20


作者:冬日毛毛雨
链接:https://juejin.cn/post/7025467793382326286


文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐