Kotlin有两种跳转:循环跳转(break与continue)和返回跳转(return)。

Label

label语法:labelName@

label可以放在任何表达式之前,用来标记表达式。如loop@ for (i in 1..100) {

// ...

}

break和continue

break和continue用于循环的跳转。break默认情况下跳出最近的循环语句。

continue默认为跳出最近循环语句当前的一次迭代,继续执行下一次迭代。

break示例for (i in 1..100) {

for (j in 1..100) {

if (...) break

}

}

break跳出了里面的for循环语句。

continue示例for (i in 1..100) {

for (j in 1..100) {

if (...) continue

}

}

continue跳出里面for循环语句的当前迭代,继续执行里面for循环语句的下一次迭代。

默认情况下,break和continue是以最近的循环语句跳转。在多个内嵌循环里,可以使用label来跳转。loop@ for (i in 1..100) {

for (j in 1..100) {

if (...) break@loop

}

}

与前面的break示例不同,此处break会跳出loop@标记的for循环。

return

return语句默认为跳出最近的函数。fun foo() {

ints.forEach {

if (it == 0) return

print(it)

}

}

在此示例里,return会跳出foo函数,而不是跳出forEach里的lambda表达式。

如果需要在lambda表达式返回有两种方法把lambda表达式改为匿名函数

结合label使用

匿名函数fun foo() {

ints.forEach(fun(value: Int) {

if (value == 0) return

print(value)

})

}

这里return跳出的是匿名函数,因为最近的函数为在forEach里定义的匿名函数。

结合label使用

结合label使用,可以让return在lambda表达式返回。fun foo() {

ints.forEach lit@ {

if (it == 0) return@lit

print(it)

}

}

此处在forEach里的lambda表达式返回。更简单的方法是使用调用lambda表达式的函数作为标签,如forEach

上面的例子等同于fun foo() {

ints.forEach {

if (it == 0) return@forEach

print(it)

}

}

return除了跳出指定的label外,也可以在跳出处返回一个值。return@a 1

这里的return表示在@a处返回1.

java跳转kotlin页面_Kotlin:return与跳转相关推荐

  1. 微信公众号跳转H5页面获取openid,再跳转小程序

    需求:从微信公众号跳转到小程序,获取到公众号的openid 1.openid?      openId 是用户在当前公众号下的唯一标识('身份证'),就是说通过这个openId,就能区分在这个公众号下 ...

  2. react如何跳转html页面,react中实现点击跳转到新页面方法

    实现点击跳转到新页面,可以有两种形式,一个是本地页面打开,一个是本地页面不变跳转到新的页面. (一)页面点击本地页面打开新页面 引入ant的Button组件 onClick={()=>{wind ...

  3. response跳转html页面,puppeteer跳转页面后response获取

    puppeteer跳转页面后response获取 问题简述 业务场景 接受到了请求后 前端立马跳转了页面 page.on('response', response => { if( respon ...

  4. nuxt.js 跳转新页面

    nuxt.js 跳转新页面的方法 一般跳转方式的写法为: this.$router.push({path: `/soft/${e.routerKey}`,}) 跳转新页面的方式1: let route ...

  5. 基于H5跳转APP,未安装的话就跳转appstore

    最近公司业务做到推广这块,下发短信H5链接点击有APP跳APP,没有跳应用市场的业务,参考大佬的博客实现 代码如下: toApp() {//微信内置浏览器let ua = navigator.user ...

  6. java语言如何跳转界面_在java中spring mvc页面如何跳转,详细图解

    众所周知,java编程语言的应用在当今社会必不可少,它是当下人们提升自己充实自身的重要选择.所以,今天主要来为大家介绍java的入门知识,在 java中spring mvc页面如何跳转,通过详细的图片 ...

  7. java跳转画面后画面白了_如何跳转指定页面后再次跳转到另一页面或原来的页面...

    c#图解教程第5版数万读者认可的新 99.33元 (需用券) 去购买 > 这里可以采用redirect以get形式向指定页面发出get请求,指定页面完成后会再次跳转到redirect后边指定的页 ...

  8. java session失效之后跳转_详解springmvc控制登录用户session失效后跳转登录页面

    springmvc控制登录用户session失效后跳转登录页面,废话不多少了,具体如下: 第一步,配置 web.xml 15 第二步,配置spring-mvc.xml 第三步,写拦截器SystemSe ...

  9. java jsp 跳转_JSP 页面跳转的实现方法

    客户端跳转 1. 使用 href 超链接标记  跳转 2. 使用表单提交完成跳转 ... 3. 使用 JavaScript 4. 使用 response.sendRedirect(String pat ...

最新文章

  1. FileStream 和StreamWriter 一起用时
  2. 接口api全局挂载_第 6 篇:分页接口
  3. 关于spring中util:/的配置
  4. c#使用Path.Combine的一个坑
  5. npm run test报错
  6. 华为一枝独秀!Q3国内智能手机出货量公布:Ov、小米、iPhone侧目
  7. centos安装SVN独立服务器
  8. 该设备或资源(Web代理)未设置为接受端口“7890“上的连接解决方案
  9. php 真太阳时间修正,真太阳时查询表(建议收藏)
  10. Navicat12注册机下载Navicat Premium12.1.17
  11. 2017第十四届国际真空展览会会刊(参展商名录)
  12. python上的包嗅探
  13. 拉丁超立方体抽样方法学习笔记
  14. Strong-Convexity:强凸性
  15. ETH2.0 Serenity中网络的详细介绍
  16. (八)Dubbo常见的错误总结
  17. 青春野狼不做姐控偶像的梦 - 线段树 - 扫描线 - 单调栈
  18. .net core 使用 Hangfire 实现定时、延时任务
  19. WebShell箱子简介与原理
  20. 【笔记】三张图读懂机器学习:基本概念、五大流派与九种常见算法

热门文章

  1. 计算机总线拓扑和环形拓扑,网络拓扑结构总线型环形星型,各自的优缺点是什么..._网络编辑_帮考网...
  2. 图形验证码空白如何处理
  3. win10环境socks代理实战
  4. web开发常用js及html代码
  5. DevOps落地实践:普元:PRIMETON DEVOPS
  6. 信息数据管理思维导图(Xmind)
  7. Nand2Tetris Project1
  8. rxjava面试题,android教程零基础入门
  9. 西门子PLC内部的数据类型大全
  10. Mac 消除系统更新小红点