When
相当于switch。
/*
when表达式
*/
fun casesWhen(obj:Any?){//这里的“?”表示填入参数时可以填入null
when(obj){
0,1,2,3,4,5,6,7,8,9-> println("${obj}==>这是1-9的数字")
"hello"-> println("${obj}==>helloworld")
is Char-> println("${obj}==>这是个字符")
else-> println("null")
}
}
fun main(args:Array<String>){
casesWhen(1)
casesWhen("hello")
casesWhen('Z')
casesWhen(null)
}
输出结果
for,while,do-whlie
class ForTest {
private val lenght:Int=5;
@Test
fun test(){
//for循环
for(i in 1..lenght){
print(i)
}
//while循环
var number:Int=0;
while (number<lenght){
number++
print(number)
}
//do-while循环
var x:Int=0;
do{
x++
print(x)
}while (x<lenght)
breakAncContinue()
}
//break和continue的使用
fun breakAncContinue(){
for(i in 1..10){
if(i%2==0){//遇到偶数直接跳出循环
break
}
print(i)
}
for(i in 1..10){
if(i%2==0){//只打印技术,遇到偶数结束当前循环,进行下一个循环
continue
}
print(i)
}
}
}
函数返回值
class ReturnTest {
//这样的函数称为:函数字面量
fun max(a:Int,b:Int)=a+b
@Test
fun test(){
val max = max(1, 2)
println(max)
//直接使用表达式声明函数
val number=fun(a:Int,b:Int)=a+b
println(number)
//直接使用表达式声明函数,注意这里的{}表示一个Lambda
val number2=fun(a:Int,b:Int)={a+b}
println(number2(1,2))
println(number2(1,2)())
println(number2(3,4).invoke())
}
}