for循环语句
package com.testOperaters
import java.util.*
/**
* Created by jingwen on 19/4/14.
* 跟java里的for循环没多多大区别
*/
fun main(args: Array<String>) {
var arrays:Array<String> = arrayOf("jingwen","zhulian","chengcheng")
for(i in arrays.withIndex()){
println(i)
println("key->${i.index} value-> ${i.value}")
}
for((k,v) in arrays.withIndex()){
println("k:$k v:$v")
}
//见证奇迹的时刻,for循环的原理,写了那么多年的程序,不知道for循环的原理吧?
var list:MyList = MyList()
list.add(22)
list.add(55)
list.add(1)
list.remove(1)
for(i in list){
println(i)
}
}
class MyList{
val list: ArrayList<Int> = ArrayList<Int>()
fun add(num:Int){
println("MyList add $num")
list.add(num)
}
fun remove(num: Int){
println("Mylist remove $num")
list.remove(num)
}
operator fun iterator():MyIterator{
return MyIterator(list.iterator())
}
}
class MyIterator (val iterator: Iterator<Int>){
operator fun next():Int{
println("invoke myIterator next")
return iterator.next()
}
operator fun hasNext():Boolean{
println("invoke myIterator hasnext ${iterator.hasNext()}")
return iterator.hasNext()
}
}
执行结果:
IndexedValue(index=0, value=jingwen)
key->0 value-> jingwen
IndexedValue(index=1, value=zhulian)
key->1 value-> zhulian
IndexedValue(index=2, value=chengcheng)
key->2 value-> chengcheng
k:0 v:jingwen
k:1 v:zhulian
k:2 v:chengcheng
MyList add 22
MyList add 55
MyList add 1
Mylist remove 1
invoke myIterator hasnext true
invoke myIterator next
22
invoke myIterator hasnext true
invoke myIterator next
55
invoke myIterator hasnext false
Process finished with exit code 0
while 循环语句还有超级老古董标签:
package com.testOperaters
/**
* Created by jingwen on 19/4/14.
*/
fun main(args: Array<String>) {
//while
var i:Int =0
while(i<10){
println(i)
i++
}
//do while
var j = 100
do{
println("i==="+i)
i++
} while (j <10)
//还有牛B的标签,java 也没有啊,kotlin确实很厉害
var list:Array<String> = arrayOf("jingwen","chengcheng","q","zhulian")
outt@for(s in list){
var i=0
while(i <5){
if(s == "q"){
break@outt
}
println("$i :$s")
i++
}
}
println("end")
}
执行结果:
0
1
2
3
4
5
6
7
8
9
i===10
0 :jingwen
1 :jingwen
2 :jingwen
3 :jingwen
4 :jingwen
0 :chengcheng
1 :chengcheng
2 :chengcheng
3 :chengcheng
4 :chengcheng
end