IF表达式

if在kotlin可以当做表达式使用跟java的三元操作符类似:

var max =  if( a > b )  a else b

if分支可以使用代码块,最后一个表达式是返回值:


var max = if (a > b){
print(a)
a
}else{
print(b)
b
}

When表达式

kotlin使用when来替换switch语句,基本特性都跟switch差不多会对列出来的分支进行匹配满足条件的分支会被执行。when可以当做表达式或者语句

如果使用when当前表达式满足条件的分支会当做when的返回值。当when当做语句使用的时候会忽略所有分支的值。when的每个分支也可以是语句块最后一个表达式是这个语句块的值。

用做表达式:

    var matchValue = 2
var result = when(matchValue){
1 -> 1
2 -> 2
else ->3
} println(result)

用于语句:

    matchValue = 3
when(matchValue) {
1 -> println(1)
2 -> println(2)
else -> println(3)
}

匹配多少值:

    when(matchValue){
1,2,3 -> println(matchValue)
}

使用is!is:

    var isInt = when(matchValue){
is Int -> println(matchValue)
else -> false
}

使用in!in:

    var valueIn = when(matchValue){
in 1..3 -> true
else -> false
}

当when没有提供一个值时它的分支是boolean表达式when会执行为真的分支:

    var valueIn = when(matchValue){
in 1..3 -> true
else -> false
}

for循环

通过任意提供的迭代器的对象循环(迭代器与java类似):

for (item in collection)
print(item)

遍历数组:

   var types = intArrayOf(1, 2, 3)
for(index in types.indices)
print(index.toString() + " ") for((index, value ) in types.withIndex())
println("index: $index, value: $value")

while循环

跟平常的while使用一样:

    var index = 0
while(index < 10)
print(index++) index = 0
do{
print(index)
}while (index++ < 10)



《架构文摘》每天一篇架构领域重磅好文,涉及一线互联网公司应用架构(高可用、高性 能、高稳定)、大数据、机器学习等各个热门领域。

Kotlin学习系列(二)的更多相关文章

  1. MyBatis学习系列二——增删改查

    目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring 数据库的经典操作:增删改查. 在这一章我们主要说明一下简单的查询和增删改, ...

  2. Maven学习系列二(1-5)

    Maven学习系列二(1-5) 本文转自 QuantSeven 博客,讲解精炼易懂,适合入门,链接及截图如下 http://www.cnblogs.com/quanyongan/category/47 ...

  3. scrapy爬虫学习系列二:scrapy简单爬虫样例学习

    系列文章列表: scrapy爬虫学习系列一:scrapy爬虫环境的准备:      http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_python_00 ...

  4. DocX开源WORD操作组件的学习系列二

    DocX学习系列 DocX开源WORD操作组件的学习系列一 : http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_sharp_001_docx1.htm ...

  5. [转]ASP.NET MVC学习系列(二)-WebAPI请求 传参

    [转]ASP.NET MVC学习系列(二)-WebAPI请求 传参 本文转自:http://www.cnblogs.com/babycool/p/3922738.html ASP.NET MVC学习系 ...

  6. RabbitMQ学习系列二-C#代码发送消息

    RabbitMQ学习系列二:.net 环境下 C#代码使用 RabbitMQ 消息队列 http://www.80iter.com/blog/1437455520862503 上一篇已经讲了Rabbi ...

  7. .net reactor 学习系列(二)---.net reactor界面各功能说明

    原文:.net reactor 学习系列(二)---.net reactor界面各功能说明         安装了.net reactor之后,可以在安装目录下找到帮助文档REACTOR_HELP.c ...

  8. 图机器学习(GML)&图神经网络(GNN)原理和代码实现(前置学习系列二)

    项目链接:https://aistudio.baidu.com/aistudio/projectdetail/4990947?contributionType=1 欢迎fork欢迎三连!文章篇幅有限, ...

  9. ASP.NET MVC学习系列(二)-WebAPI请求

    继续接着上文 ASP.NET MVC学习系列(一)-WebAPI初探 来看看对于一般前台页面发起的get和post请求,我们在Web API中要如何来处理. 这里我使用Jquery 来发起异步请求实现 ...

随机推荐

  1. Unity Shader 卡通渲染 基于退化四边形的实时描边

    从csdn转移过来,顺便把写过的文章改写一下转过来. 一.边缘检测算法 3D模型描边有两种方式,一种是基于图像,即在所有3D模型渲染完成一张图片后,对这张图片进行边缘检测,最后得出描边效果.一种是基于 ...

  2. HTML(四)图像,表格

    HTML 图像 插入动图的语法和静态图的语法是一样的 HTML 图像- 图像标签( )和源属性(Src) 一个来自文件夹中的图像: 一个来自网站的图像: alt 属性用来为图像定义一串预备的可替换的文 ...

  3. JIra配置权限方案

    目录: 添加用户 添加用户组 将用户分配到不同的组中 创建项目权限方案 配置项目采用的权限方案 1. 添加用户 1)使用admin权限的账户登录后,点击右上角的配置,选择system 2)在打开的页面 ...

  4. 洛谷P1240-诸侯安置+递推非搜索

    诸侯安置 这道题是一题递推题,一开始自己不知道,用了搜索,只过了三个样例: 两两相同的合并, 成 1,1,3,3,5,5........n*2-1; 然后我们会容易发现一种不同与搜索的动态规划做法. ...

  5. 2019 Multi-University Training Contest 6

    A.Salty Fish upsolved 题意 偷苹果,每个节点上有\(a[i]\)个苹果,在某些位置有摄像机,看管子树里距离不超过\(k[i]\)的节点,损坏摄像机有\(c[i]\)代价,求最大收 ...

  6. codeforces 572 C. Lengthening Sticks(数学)

    题目链接:http://codeforces.com/contest/572/problem/C 题意:给出a,b,c,l要求a+x,b+y,c+z构成三角形,x+y+z<=l,成立的x,y,z ...

  7. adb logcat命令

    1.http://blog.csdn.net/tumuzhuanjia/article/details/39555445 2.http://blog.csdn.net/xyz_lmn/article/ ...

  8. java 面试题 1-10

    1. Java 基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法, 线程的语法,集合的语法,io 的语法,虚拟机方面的语法 1.一个".java&q ...

  9. 如何从 if-else 的参数校验中解放出来?

    背景 在开发中经常需要写一些字段校验的代码,比如非空,长度限制,邮箱格式验证等等,导致充满了if-else 的代码,不仅相当冗长,而且很让人抓狂. hibernate validator(官方文档)提 ...

  10. Wireshark解密HTTPS流量的两种方法

    原理 我们先回顾一下SSL/TLS的整个握手过程: Clienthello:发送客户端的功能和首选项给服务器,在连接建立后,当希望重协商.或者响应服务器的重协商请求时会发送. version:客户端支 ...