您的位置:首页 > 其它

Kotlin基础(四)控制流和函数

2017-12-26 10:49 363 查看
控制流

if elseif / while / when / for break continue


var array = arrayOf(1, 2, 3, 4, 5)

//遍历
for (a in array) {
if (a > 2) {
print(a)
}
}
//范围内
for (a in 5..20) {
print(a)
}

var number = 1
var total = 0;
while (total < 505) {
total = total + number
if (total > 100) {
println("大于" + total)
break
} else {
println("小于" + total)
}
}


when

var cu = 18

//满足一个条件就结束,相当于java中的elseif
//可对变量的大小/范围/值表达式/类型进行判断

when (cu) {
//范围(不在0~10之间)
!in 0..10 -> {
println("在范围内=="+cu)
}
//范围
1,2,3,18 -> {
println("在范围内=="+cu)
}
//表达式
(8-6) ->{
println("2=="+cu)
}
//类型
is Int -> {
println("${cu}是Int类型")
}
else -> {
println(cu)
}
}


函数

普通函数

// fun 函数名(入参 : 参数类型 = 默认值): 返回值类型
//y的默认值是20
fun add(x: Int, y: Int = 20): Int {
return x + y
}

//可变参数修饰符vararg,类似Java中的String...和int...
fun sum( vararg ints : Int) : Int {
var total = 0
for (a in ints) {
total = total + a
}
return total
}


fun main(args: Array<String>) {
var c = add(1,2)
//给了y的入参,默认值就失效了
var d = add(x = 3, y = 4)
//y有默认值的时候,y可以不传
var e = add(2)
println("相加后${c} ${d} ${e}")

var sum = sum(5,6,2,4,9)
//或
var intarray = intArrayOf(5,6,2,4,9)
var sum2 = sum(*intarray)

println("数组相加后${sum}   ${sum2}")
}


高阶函数(map和filter)

fun main(args: Array<String>) {

var array = intArrayOf(1,2,3,4,5)
//高阶函数:描述任务的结果,而不是使用循环详细推算
//map:常用语对集合类型的所有元素类型转换
//lambda(无名函数) 函数的元素约定名称为it
var b = array.map { "第${it}"}
for (i in b) {
println(i)
}
//筛选函数
var sum = 0
var d = array.filter { it % 2 == 0 }.forEach {
sum  = sum + it
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: