kotlin 循环语句(for ,while ,do while)

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

猜你喜欢

转载自blog.csdn.net/jingwen3699/article/details/89300579