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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值