Kotlin学习快速入门(2)——条件 数组 循环 方法
程序员文章站
2022-11-08 12:52:19
条件 if条件判断 常用的判断和Java一样,这里提一下不同的用法 1.if可以作为三元运算符 2.使用in判断是否在某个区间 2.数值分支 3.表达式使用 4.不带参数 数组 kotlin中数组用Array类实现,使用arrayOf方法或者是Array()的构造方法创建数组 除了类Array,还有 ......
条件
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) } }