控制流
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
}
}