• 开发环境:IntelliJ IEDA
  • 个人博客:http://blog.csdn.net/IInmy
  • 项目源码:https://github.com/Rushro2m/KotlinForOfficial
  • 官方文档中文版:https://www.kotlincn.net/docs/reference/returns.html

Kotlin有三种结构化跳转表达式:

  • return:默认从最直接包围它的函数或者匿名函数返回。
  • break:终止最直接包围它的循环。
  • continue:继续下一次最直接包围它的循环。

所有的这些表达式都可以用作更大表达式的一部分:

val s = Person("张三").name ?: return

1、Break与Continue标签

在Kotlin中任何表达式都可以用标签(label)来标记。标签的格式为标识符后跟@符号,例如:abc@fooBar@都是有效的标签。要为一个表达式加标签,我们只要在其前加标签即可。

loop@ for (i in 1..100) {//...}

标签限制的break跳转到刚好位于该标签指定的循环后面的执行点。continue继续标签指定的循环下一次迭代。

2、标签处返回

Kotlin有函数字面量、局部函数和对象表达式。因此Kotlin的函数可以被嵌套。标签限制的return允许我们从外层函数返回。最终的一个用途就是i从Lambda表达式中返回。

fun foo() {val ints = listOf(0, 1, 2, 3, 4, 5, 6)ints.forEach {if (it == 3)//从Lambda函数中返回,结束这个循环函数returnprint(it)}
}

这个return表达式从最直接包围它的函数即foo中返回。如果我们需要从Lambda表达式中返回,我们必须给它加标签并用以限制return

fun fzz() {val ints = listOf(0, 1, 2, 3, 4, 5, 6)ints.forEach lit@ {if (it == 0) return@litprint(it)}
}

通常情况下使用隐式标签更方便。改标签与该Lambda的函数同名。

fun fxx() {val ints = listOf(0, 1, 2, 3, 4, 5, 6)ints.forEach {if (it == 0) return@forEachprint(it)}
}

3、Continue

continue指的是继续标签指定的循环的下一次迭代,也就是结束本次循环,开始下一次循环。

for (i in 1..10){if (i==6)continueprint(i)}

Kotlin学习(7):返回和跳转相关推荐

  1. Kotlin 5 控制流,返回和跳转

    注:当前文档为Kotlin自学总结,若什么地方含义模糊不清,敬请指教,谢谢:-). 目录:- 控制流-循环和控制语句- 返回和跳转-return,continue,break 复制代码 控制流 if: ...

  2. Kotlin 学习笔记(八)—— Kotlin类与对象之接口

    Kotlin 学习笔记(八)-- Kotlin类与对象之接口 Kotlin学习笔记系列教程 Kotlin 学习笔记(一)-- 概述.学习曲线.开发工具.参考资料 Kotlin 学习笔记(二)-- 基础 ...

  3. Kotlin 学习笔记(七)—— Kotlin类与对象之属性与字段

    Kotlin 学习笔记(七)-- Kotlin类与对象之属性与字段 Kotlin学习笔记系列教程 Kotlin 学习笔记(一)-- 概述.学习曲线.开发工具.参考资料 Kotlin 学习笔记(二)-- ...

  4. Kotlin学习笔记 第一章开始 第二章 基础

    参考链接 Kotlin官方文档 https://kotlinlang.org/docs/home.html 本系列为参考Kotlin中文文档 https://download.csdn.net/dow ...

  5. Kotlin学习笔记1——变量、函数

    Kotlin学习笔记1 (学习教材为<第一行代码(第三版)>by郭霖) 1.Kotlin概述 ​ Java虚拟机不关心class文件的编译来源,即只要是符合规格的class文件,Java虚 ...

  6. Android Kotlin学习笔记(一)—— Kotlin Koans

    文章目录 题记 1.资料阅读 2.辅助插件 3.习题演练 3.1 Introduction 1.Hello world 2.Java to Kotlin conversion 3.Named argu ...

  7. 【Android】Kotlin学习(一)

    目录 Android--Kotlin学习 1. 使用控件id直接使用控件 2. 继承类实现接口 3. 点击事件监听 4. 点击事件接口实现 5. 页面跳转 6. 文本操作 7. 网络请求数据 8. K ...

  8. Kotlin学习笔记(3)- 语法

    系列文章全部为本人的学习笔记,若有任何不妥之处,随时欢迎拍砖指正.如果你觉得我的文章对你有用,欢迎关注我,我们一起学习进步!kotlin学习笔记系列首发简书和CSDN Kotlin学习笔记(1)- 环 ...

  9. Kotlin学习笔记(2)- 空安全

    系列文章全部为本人的学习笔记,若有任何不妥之处,随时欢迎拍砖指正.如果你觉得我的文章对你有用,欢迎关注我,我们一起学习进步!kotlin学习笔记系列首发简书和CSDN Kotlin学习笔记(1)- 环 ...

  10. kotlin学习笔记——枚举、封闭类

    1.枚举 kotlin中提供类枚举的实现,与java相同.枚举可以带参数,如 enum Icon(val res: Int){MENU(R.drawable.menu),BACK(R.drawable ...

最新文章

  1. 定制Apache索引样式
  2. C#--多线程--2
  3. poj 1298 The Hardest Problem Ever
  4. 究竟是什么可以比反射还快实现动态调用?| Source Generators版
  5. Linux下用ls和du命令查看文件以及文件夹大小
  6. 17011301(UE4的AnimDynamic)
  7. 十-二进制数的最少数目
  8. css怎么实现加载的圆圈_图像高清方案——响应式图像让图像加载又快又省
  9. asp.net 通过IHttpModule开发接口
  10. dell服务器运维,【产品鉴赏】戴尔DELL R710服务器
  11. 2022全新彩虹商城知识付费模板源码+修复改良版
  12. impalahive大数据平台数据血缘与数据地图(四)-impala血缘架构图及功能介绍
  13. js实现千位分隔符运算
  14. 数据分析报告这样写,才算真正读懂了数据
  15. sort by age(vector)
  16. 用python画熊_Python数据可视化:Pandas库,只要一行代码就能实现
  17. C语言约瑟夫报数出圈算法,详解约瑟夫环问题及其相关的C语言算法实现
  18. 每天一个小Error
  19. 通过blacklist来禁用驱动
  20. 婚纱行业怎么做好有效的营销方案来打动客户?

热门文章

  1. 2004胡润IT富豪榜
  2. Excel 创建多级列表
  3. Python手写实现LDA与QDA算法
  4. mysql类似于excel的删除重复项_删除重复数据 excel去除重复数据 怎么筛选重复数据 excel重复数据合并...
  5. 教程:简单几步制作出酷炫网页版简历
  6. 王者荣耀怎么删除在服务器上建立的账号,王者荣耀账号怎么注销 王者荣耀账号注销方法...
  7. mysql 数据连续不走索引6_MySql组合索引最左侧原则失效
  8. VMware Workstation 与 Hyper-V 不兼容。请先从系统中移除 Hyper-V 角色,然后再运行 VMware Workstation。
  9. Mysql 多表查询详解
  10. 机械革命code01卡顿