zoukankan      html  css  js  c++  java
  • 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)
        }
    }
    
  • 相关阅读:
    Linux压缩和解压类指令
    Linux 搜索查找类指令
    Linux时间日期类指令
    Linux文件目录类指令
    Linux帮助指令
    Linux运行级别
    微信授权获取code/openid
    微信公众配置
    MySQL规范
    PHP7搭建项目遇到的坑
  • 原文地址:https://www.cnblogs.com/stars-one/p/11251441.html
Copyright © 2011-2022 走看看