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 = 2var result = when(matchValue){1 -> 12 -> 2else ->3}println(result)

用于语句:

    matchValue = 3when(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 -> trueelse -> false}

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

    var valueIn = when(matchValue){in 1..3 -> trueelse -> 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 = 0while(index < 10)print(index++)index = 0do{print(index)}while (index++ < 10)

转载于:https://www.cnblogs.com/xwgblog/p/5289823.html

Kotlin学习系列(二)相关推荐

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

    图机器学习(GML)&图神经网络(GNN)原理和代码实现(PGL)[前置学习系列二] 上一个项目对图相关基础知识进行了详细讲述,下面进图GML networkx :NetworkX 是一个 P ...

  2. Linux学习系列二:Linux中的常用命令

    这个系列的Linux教程主要参考刘遄老师的<Linux就该这么学>.用的系统是RHEL8,如果遇见一些命令出现问题,请首先检查自己的系统是否一致,如果不一致,可网上查一下系统间某些命令之间 ...

  3. Pyside2 学习系列二:PyInstaller打包项目exe (超详细的Pyside2 攻略)

    继上一篇文章创建了项目后,本章我们进行项目的打包工作. 本项目的所有演示代码:github可在这里下载. 打包只用的工具为PyInstaller. 打包步骤 1 准备环境 1.1 安装`PyInsta ...

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

    图学习图神经网络算法专栏简介:主要实现图游走模型(DeepWalk.node2vec):图神经网络算法(GCN.GAT.GraphSage),部分进阶 GNN 模型(UniMP标签传播.ERNIESa ...

  5. RabbitMQ学习系列二:.net 环境下 C#代码使用 RabbitMQ 消息队列

    上一篇已经讲了Rabbitmq如何在Windows平台安装,不懂请移步:RabbitMQ学习系列一:windows下安装RabbitMQ服务 一.理论: .net环境下,C#代码调用RabbitMQ消 ...

  6. Java I/O系统学习系列二:输入和输出

    编程语言的I/O类库中常使用流这个抽象概念,它代表任何有能力产出数据的数据源对象或者是有能力接收数据的接收端对象."流"屏蔽了实际的I/O设备中处理数据的细节. 在这个系列的第一篇 ...

  7. Nginx学习系列二Linux下Nginx实现负载均衡

    关于在本地虚拟机(VMware 14)下安装Linux同时安装Nginx,请参考Nginx学习系列之搭建环境 1.启动Nginx 在Nginx安装成功的前提下,启动Nginx 已root模式登陆(权限 ...

  8. foucus 冒泡_Knockoutjs 学习系列(二)花式捆绑

    在上一篇Knockoutjs 学习系列(一)ko初体验文章中提到,ko中的 data-bind = "XX:OO"绑定大法除了可以绑定text.value等内容,还可以绑定visi ...

  9. Kotlin学习(二)Kotlin基础语法

    学习一门语言,我总是会先学习一下基本的语法.因为并不急着应用Kotlin去开发项目,所以,还是有很多的时间去学习.今天,简单的总结一下Kotlin的基本语法. 一.函数 1.有参有返回值函数 fun ...

最新文章

  1. [T-ARA][Bo Peep Bo Peep]
  2. nodejs fs path
  3. Verilog中的加法器(半加器,全加器,串行、超前进位加法器)
  4. QT的QDtlsClientVerifier类的使用
  5. php 批量更新死锁,php – 在尝试获取锁定时,哪个查询导致死锁;尝试重新启动事务...
  6. linux 查看led设备,Linux下LedButton设备驱动——详细设计
  7. (转)postgis常用函数介绍(二)
  8. Netty工作笔记0023---NIO服务器客户端总结
  9. NAT、远程访问和站点间***集成
  10. 【数据结构笔记02】什么是算法
  11. Hystrix熔断机制原理剖析
  12. Spark 堆外内存
  13. ActionScript 中的字符串替换函数
  14. CSDN下载频道1月最受欢迎资源强力推荐~!
  15. Pix4D生成正射影像和DSM详细教程(可下载)
  16. 快速切换ip没必要用工具
  17. led伏安特性实验误差分析_伏安法测量误差分析-北京新东方
  18. ElementUI表格序号翻页后重置的解决办法
  19. GOP之M和N值介绍
  20. 树莓派4+神经计算棒二代开发-环境搭建

热门文章

  1. ASIHTTPRequest-断点续传需要原网站支持!
  2. 负载均衡原理剖析与实践:负载均衡第一篇-介绍篇
  3. We7 CMS 2.7beta3 版发布!SVN源码同步开放
  4. 比Jquery FlexiGrid更好用 dotnetFlexGrid 1.2beta更新-增加展现模板模式(Grid中可以放编辑控件和任意Html内容了)...
  5. OpenCV计算机视觉实战(Python版)_005图像的梯度处理
  6. ArcEngine和GDAL读写栅格数据机制对比(一)
  7. activereports_报表 ActiveReports 迎来 .Net Core 时代!一键创建 .Net Core 项目
  8. 东莞华勤通讯软件测试怎么样,【社招】华勤通讯NBD测试验证部急聘岗位-东莞...
  9. 东华大学计算机科学与技术考研方向,2017考研:计算机科学与技术专业考研院校推荐之东华大学...
  10. 阿里云和中移物联网M5311的MQTT通讯