条件

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. DataVeryLite和Nhibernate性能对比

    电脑型号:acer 4752g 电脑配置: 代码分享: class Program { static void Main(string[] args) { Debug.Listeners.Add(ne ...

  2. SPOJ130_Rent your airplane and make money_单调队列DP实现

    题意比较简单,状态转移方程也比较容易得出: f[i]=max{ f [ j ] }+p[i],(j的结束时间在i开始时间之前) 若i开始之前没有结束的j,则f[i]=p[i]; 因数据量太大(n< ...

  3. C语言实现常用排序算法——基数排序

    #include<stdio.h> #include<math.h> #define SIZE 10 #define C_SIZE 20 /*行数稳定=10,切记!列数务必搞的 ...

  4. 写在Logg SAP项目上线之际

    根据大环境大行业的惯用做法,公司建立Logg品牌是在意料之中.毫无意外的,Logg也要上到SAP系统中. 其实按它的业务模式来说上SAP系统并不困难,早在几年前就已经有做过了.无非就是接单不生产,外包 ...

  5. rm、shutdown、磁盘挂载、vi使用方法

    1. 系统管理文件 1.1 rm 文件与目录有关命令 删除命令 (慎用)    --- 数据是否备份了 rm === remove rm /oldboy/oldboy.txt  --- 删除文件 rm ...

  6. 基于maven的项目脚手架,一键创建项目的项目模板

    制作基于maven的项目脚手架 Springboot的出现极大的简化了项目开发的配置,然而,到真实使用的时候还是会有一堆配置需要设定.比如依赖管理,各种插件,质量扫描配置,docker配置,持续集成配 ...

  7. Python自学day-8

    一.SocketServer 简化了编写网络服务器的难度. SocketServer一共有如下几个类型: socketserver.TCPServer :提供一个TCP的socketserver. s ...

  8. Java 程序员的大数据入门指南

    项目 GitHub 地址:https://github.com/heibaiying/BigData-Notes ✒️ 前 言 大数据常用技术栈思维导图 大数据常用软件安装指南 一.Hadoop 分布 ...

  9. 针对Linux 文件完整性监控的实现

    针对Linux 文件完整性监控的实现 摘要 计算机和互联网是20世纪以来最伟大的发明之一,随着计算机技术的不断发展,人们的生活方式发生了巨大的变化.计算机和互联网的发展给人们的生产生活带来了极大的便利 ...

  10. Matplotlib快速入门

    Matplotlib 可能还有小伙伴不知道Matplotlib是什么,下面是维基百科的介绍. Matplotlib 是Python编程语言的一个绘图库及其数值数学扩展 NumPy.它为利用通用的图形用 ...