【2024最新版Kotlin教程】Kotlin第一行代码系列第三课-流程控制
【2024最新版Kotlin教程】Kotlin第一行代码系列第三课-流程控制
想想就知道程序肯定有流程控制,因为现实生活也有。比如选择了坐地铁会怎样,坐公交会怎样。还有循环操作
一、流程控制示例代码:
fun main() {
//=================================== if start==================================
// 判断流程 if里最后一行是返回值,它可以作为表达式使用
val score : Int = 80
val state = if (score >= 60){
"及格"
} else {
"不及格"
}
if (score >= 60){
}
// 如果内容只有一行,可以省略{}
val state1 = if (score >= 60) "及格" else "不及格"
// 多个if
val state2 = if (score >= 80){
"优秀"
} else if (score >= 60){
"及格"
} else {
"不及格"
}
/**
* 注意kotlin没有三目运算符,可用下面的形式代替
* 不过它有?:的用法
*/
val str :String? = null
// str为null就调用"我是最三"
val str1 = str?:"我是最三"
// 如果str不为null,就调用str.length方法,为null就调用"我是最三"
val str2 = str?.length?:"我是最三"
//=================================== if end==================================
//===================================== when start======================================
/**
* switch
*
* 它也是判断流程,超过3个判断就考虑用when了
* 它功能就比较强大,if能做的,它都能做。
*/
// 方式1:只有一个值匹配
val x = 2
when (x) {
1 -> print("x = 1")
2 -> print("x = 2")
else -> {
print("x既不是1也不是2")
}
}
// 方式2:同时匹配多个值“,”隔开
val y = 2
when (y) {
1,2 -> print("y == 1 or y == 2" )
else -> {
print("y既不是1也不是2")
}
}
// 方式3:不写在when里面,每个流程的判断自己写
val state3 = when {
score>=80 -> {
"第一行"
println("这里有多行代码,加大括号")
"优秀" //最后一行是返回值
}
score>=60 -> "及格" //只有一行可以不加大括号
else -> "不及格"
}
/**
* 选学内容
*/
when (y) {
in 1..10 -> print(" y in 1..10")//或者是 !in
else -> {
print("y不在1..9区间内")
}
}
when (y) {
is Int -> print(" y is Int") //Kotlin是Int类型的
in 1..10 -> print(" y in 1..10")//或者是 !in
else -> {
print("y")
}
}
//===================================== when end======================================
//===================================== for start==============================================
/**
* 循环流程,数组,集合中常用
*/
// 方式1:用in来遍历,也叫做迭代,顺序
val array = arrayOf(1, 2, 3)
for (i in array) {
println(i)
}
/**
* 介绍下区间
*/
// 左包右包区间 左闭右闭
val array1 = 1..10
// 创建半开半闭区间 需要用 until
val array2 = 1 until 3
println("左包右不包")
for (i in array2) {
println(i)
}
println("左包右包")
// step 代表步长 1 2
for (i in array1 step 2) {
println(i)
}
// 方式2:逆序
for (i in array.size -1 downTo 0){
println("index = $i , value = ${array[i]}")
}
/**
* 暂时选学,其实也是要学的,你可以当Api来查询使用
*/
val list1= arrayListOf<String>("a","b","c","d")
val list2 = ArrayList<String>()
list2.add("a")
list2.add("b")
list2.add("c")
list2.add("d")
// 方式3:输出的是集合的下标
for(index in list2.indices){
println(index)
}
// 方式4:用forEach扩展函数,输出的是每一个值
list2.forEach{
println(it)
}
// 方式5:解构的形式,同时获取下标和值
for((index,value) in list2.withIndex()){
print("$index:$value")
}
// 方式6:Iterator 一般都不用
val iterator = list2.iterator()
while (iterator.hasNext()){
val value = iterator.next()
print(value)
}
// 对应map遍历
var map = HashMap<String,Int>()
map["1"] = 233
map["2"] = 666
map["3"] = 999
//查某个key对应的值
println("map[\"1\"] = ${map["3"]}")
//遍历
for (kv in map){
println("key=${kv.key},value=${kv.value}")
}
//===================================== for end==============================================
}
有兴趣的也可以看视频教程:
【2024最新版Kotlin教程】Kotlin第一行代码系列第三课-流程控制
整个kotlin教程项目源码结构图:
有问题或者需要整个源码的私信我