条件

if条件判断

常用的判断和Java一样,这里提一下不同的用法

1.if可以作为三元运算符

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

2.使用in判断是否在某个区间

val x = 1
//相当于条件 1<= x <=8
if(x in 1..8){
println("在区间内")
}
//与上面的条件相反
if(x !in 1..8){
...
}

3.is关键字类型转换

相当于Java中instanceof关键字

使用了is,kotlin已经自动完成了类型转换

val text = "hello"
if(text is String){
...
}

when(swich分支)

1.字符串分支

val result = ""
when(result){
"OK","SUCCESS" -> print("成功")
"Falied" -> {
一系列操作...
}
else ->{
一系列操作...
}
}

2.数值分支

val num = 2
when(num){
in 1..10 -> println("num在1和10之间")
11,12 -> println("num为11或12")
}

3.表达式使用

//hasPrefix方法返回true或fasle
fun hasPrefix(x: Any) = when(x) {
is String -> x.startsWith("prefix")
else -> false
}

4.不带参数

//里面的分支条件是布尔表达式
when {
x.isOdd() -> print("x is odd")
x.isEven() -> print("x is even")
else -> print("x is funny")
}

数组

kotlin中数组用Array类实现,使用arrayOf方法或者是Array()的构造方法创建数组

//Int数组 [1,2,3]
val a = arrayOf(1, 2, 3) //String数组 ["he","you"]
val a = arrayOf("he","you") //工厂方法,["he0","he1],"he2"]
val array = Array(3, { i -> ("he" + i) }) //还可以传对象
val a = arrayOf(student1,student2)

除了类Array,还有ByteArray, ShortArray, IntArray,用来表示各个类型的数组,省去了装箱操作,因此效率更高,其用法同Array一样。

循环

while循环与java一样,这里不多说

普通for循环


//0-4循环(包括0和4) 打印01234
for(i in 0..4){
println(i)
} //反序 4-1 两边都包括 打印4321
for (i in 4 downTo 1){
print(i)
} //[0-4),不包括4 打印0123
for (i in 0 until 4) {
println(i)
} //结果为13(步长为2,相当于每次循环i=i+2)
for(i in 1..4 step 2){
println(i)
}

数组遍历

//collection数组,list,String等可迭代的对象
for (item in collection){
print(item)
} //it就是数组中的一个元素
array.forEach {
println(it)
} //indices是数组的区间(0-length-1)
for (i in array.indices) {
print(array[i])
} //得到下标和数值
for ((index, value) in array.withIndex()) {
println("the element at $index is $value")
}

方法

无返回值

//Unit相当于Void,可以省略不写
fun sayHello(): Unit{
println("hello world")
} fun sayHello(){
println("hello world")
}

带返回值

fun sayHello(): String{
return "hello world"
} //如果方法是作为表达式,则可以省略声明方法返回的类型
fun sayHello() = "hello" // public方法则必须明确写出返回类型
public fun sum(a: Int, b: Int): Int = a + b

带参数

fun max(num1: Int, num2: Int): Int {
return if (num1>num2) num1 else num2
}

可变参数

可变参数使用vararg关键字修饰

fun vars(vararg v:Int){
for(vt in v){
print(vt)
}
}

Kotlin学习快速入门(2)——条件 数组 循环 方法的更多相关文章

  1. Kotlin学习快速入门(7)——扩展的妙用

    原文地址: Kotlin学习快速入门(7)--扩展的妙用 - Stars-One的杂货小窝 之前也模模糊糊地在用这个功能,也是十分方便,可以不用继承,快速给某个类增加新的方法,本篇便是来讲解下Kotl ...

  2. Kotlin学习快速入门(4)——集合使用

    List,Set,Map都是集合 List 是一个有序集合,可通过索引(反映元素位置的整数)访问元素.元素可以在 list 中出现多次.列表的一个示例是一句话:有一组字.这些字的顺序很重要并且字可以重 ...

  3. Kotlin学习快速入门(5)——空安全

    介绍 kotlin中,对象可分为两种类型,可为空的对象和不可为空对象 默认为不可为空对象,代码检测如果发现不可为空对象赋予了null,则会标红报错. 可为空的对象,如果调用了方法,代码检测也会标红报错 ...

  4. Kotlin学习快速入门(1)——基本数据类型以及String常用方法使用

    本文适合有Java基础的人 Kotlin语法特点 相比java,省略括号,可以自动判断类型,省略new关键字,空指针捕获 主函数 kotlin文件(kt文件)中,只有要下列的方法,就可以运行,无需像之 ...

  5. Kotlin学习快速入门(3)——类 继承 接口

    类 参考链接 类定义格式 使用class关键字定义,格式如下: class T{ //属性 //构造函数 //函数 //内部类 } Java Bean类 java bean类 //java bean类 ...

  6. 【python学习笔记】5.条件、循环和其他语句

    [python学习笔记]5.条件.循环和其他语句 print: 用来打印表达式,不管是字符串还是其他类型,都输出以字符串输出:可以通过逗号分隔输出多个表达式 import: 导入模块     impo ...

  7. python学习(五) 条件、循环和其他语句

    第五章 条件.循环和其他语句 5.1 print和import的更多信息 5.1.1 使用逗号输出 >>> print('age',43,45)         // 可以用逗号隔开 ...

  8. Python学习之路4☞条件和循环

    一.if语句 1.1 功能 计算机又被称作电脑,意指计算机可以像人脑一样,根据周围环境条件(即expession)的变化做出不同的反应(即执行代码) if语句就是来控制计算机实现这一功能 1.2 语法 ...

  9. PL/SQL学习(二)条件和循环语句

      原文参考:http://plsql-tutorial.com/   PLSQL条件语句 IF THEN ELSE STATEMENT 1) IF condition THEN  statement ...

随机推荐

  1. 在无界面centos7上部署jdk和tomcat

    1.安装xshell6 2.创建服务器连接,输入用户名和密码 3.输入 sudo su -root 获取root权限 4.输入 cd /usr/local 进入local文件夹 5.输入 wget - ...

  2. python读取json文件并解析

    # -*- coding: utf-8 -*- import os import json import sys reload(sys) sys.setdefaultencoding('utf-8') ...

  3. spring boot热部署devtools

    1 pom.xml文件 注:热部署功能spring-boot-1.3开始有的 <!--添加依赖--> <dependency> <groupId>org.sprin ...

  4. OpenProj打开不了或者提示”Failed to load Java VM Library”的错误的解决方案

    一.双击打开OpenProj.exe没反应的解决方案: 1) 修改OpenProj1.4.0.ini,将Maximum Version=any改为Maximum Version=1.7,保存. 2)这 ...

  5. 12 jQuery的ajax

    什么是ajax AJAX = 异步的javascript和XML(Asynchronous Javascript and XML) 简言之,在不重载整个网页的情况下,AJAX通过后台加载数据,并在网页 ...

  6. Android 即时通讯开发小结(一)

    <Android 即时通讯开发小结>基于IM Andriod 开发的各种常见问题,结合网易云信即时通讯技术的实践,对IM 开发做一个全面的总结. 相关推荐阅读:. Android 即时通讯 ...

  7. spring boot 2.x 系列 —— spring boot 实现分布式 session

    文章目录 一.项目结构 二.分布式session的配置 2.1 引入依赖 2.2 Redis配置 2.3 启动类上添加@EnableRedisHttpSession 注解开启 spring-sessi ...

  8. 用arduino制作具有无限数据传输功能的气象站

    本项目是用arduino开源硬件,来快速制作具有无限数据传输功能的气象站,我之前做过一个带数据记录功能的气象站项目,这次算是升级和改进的版本. 第1步:构想 首先,需要增加从气象站到室内接收器的无线数 ...

  9. 【朝花夕拾】Android自定义View篇之(一)View绘制流程

    前言 转载请申明转自[https://www.cnblogs.com/andy-songwei/p/10955062.html]谢谢! 自定义View.多线程.网络,被认为是Android开发者必须牢 ...

  10. 向Rocket.Chat推送消息

    Rocket.Chat推送消息 Rocket.Chat是一个开源实时通讯平台, 支持Windows, Mac OS, Linux. 支持聊天, 文件上传, 视频通话, 语音通话功能. 向Rocket. ...