Kotlin学习快速入门(2)——条件 数组 循环 方法

条件

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)
    }
}

原文地址:https://www.cnblogs.com/kexing/p/11251441.html

时间: 2024-07-29 13:18:37

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

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

介绍 kotlin中,对象可分为两种类型,可为空的对象和不可为空对象 默认为不可为空对象,代码检测如果发现不可为空对象赋予了null,则会标红报错. 可为空的对象,如果调用了方法,代码检测也会标红报错 var s: String = "hello" //不可为空 s = null//标红报错 var s: String? = "hello" s=null //代码检测通过 println(s.length)//标红报错 调用可为空对象的属性或方法 这样的好处就是,如

python基础教程_学习笔记7:条件、循环、其它语句

条件.循环.其它语句 print和import 随着更加深入地学习python,可能会出现这种感觉:有些自以为已经掌握的知识点,还隐藏着一些让人惊讶的特性. 使用逗号输出 打印多个表达式,只要将这些表达式用逗号隔开即可: >>> print "age:",28 age: 28 参数之间都插入了一个空格符. 如果在结尾加上逗号,那么接下来的语句会与前一条语句在同一行打印: print "Hello,", print "World!"

python学习[第十三篇] 条件和循环

python学习[第十三篇] 条件和循环 if语句 单一if 语句 if语句有三个部分构成,关键字if本身,判断结果真假的条件表达式,以及表达式为真或非0是执行的代码 if expression: expr_true_suite 条件表达式可以是多重的 通过布尔操作符 and or not来实现 单一语句的if 代码块,如果if语句的执行代码只有一行,可以放在一行来写 if expresssion: expr_tru_suite >>> if True: print True ... T

Kotlin的快速入门

Kotlin 快速入门: Kotlin 的 Hello World : #hellokotlin.kt fun main(args:Array<String>){ println("hello kotlin!"); } Kotlin 的 变量和常量 : 1 // eclipse 中运行的快捷键是 ctrl + f11 2 fun main(args:Array<String>){ 3 var i = 18; //变量 4 println(i); 5 6 val

Kotlin学习笔记-----取值范围和循环

取值范围 kotlin中可以给一个变量赋值一个范围, 而不仅仅是单个的值 例如: // 表示从1到100的值 // 此时起始值要小于结束值 var i = 1..100 通过downTo可以表示从100到1 // downTo的起始值要大于结束值 var i = 100 downTo 1 也可以使用reversed()来将正序的反转 // 通过reversed反转 var i = 1..100 i.reversed() 可以使用step控制步长 // 此时就是1到100的值, 每次增长2 var

C++ Primer快速入门之六:数组和指针

更新:勘误,delete [] 猪 我们知道,C语言以及早期的面向结构的语言几乎都支持数组定义,比如整形数组int 女神[2],表示有俩数: 女神[0], 女神[1],她们都是整数.C++ 语言为了效率和兼容考虑,也支持这个.当然了,毕竟是别人家的孩子(标准),并不提供类似于 vector 和迭代器类型那些神奇的能力.与 vector的区别在于,数组的长度是固定的.另外呢,指 针还是那个指针,没有变化. ? 我们编程时候,尽量使用 vector,避免使用数组和指针.有了vector和她的iter

Gradle学习系列之一——Gradle快速入门(转)

这是一个关于Gradle的学习系列,其中包含以下文章: Gradle快速入门 创建Task的多种方法 读懂Gradle语法 增量式构建 自定义Property 使用java Plugin 依赖管理 构建多个Project 自定义Task类型 自定义Plugin 请通过以下方式下载本系列文章的Github示例代码: git clone https://github.com/davenkin/gradle-learning.git 和Maven一样,Gradle只是提供了构建项目的一个框架,真正起作

Gradle学习系列之一——Gradle快速入门

Gradle学习系列之一--Gradle快速入门 这是一个关于Gradle的学习系列,其中包含以下文章: Gradle快速入门 创建Task的多种方法 读懂Gradle语法 增量式构建 自定义Property 使用java Plugin 依赖管理 构建多个Project 自定义Task类型 自定义Plugin 请通过以下方式下载本系列文章的Github示例代码: git clone https://github.com/davenkin/gradle-learning.git 和Maven一样,

JS数组循环的两种方法

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta h