Kotlin学习之循环语句及异常的捕获

2018-02-27  本文已影响0人  波涛澎湃

循环语句

直接上代码示例:


fun main(args: Array<String>) {

    val list = listOf("a","b","c")

    for(a in list){
        println(a)
    }

    for((index,value) in list.withIndex()){
        println("$index->$value")
    }

    for(index2value in list.withIndex()){
        println("${index2value.index}->${index2value.value}")
    }

    val intRange = 1..10
    for(b in intRange){
        print("$b,")
    }


    //while 和 do..while演示
    var x = 5
    while(x > 0){
        println(x)
        x--
    }

    do{
        println(x)
        x--
    }while (x > 0)

}

我们也可以模拟自定义一个集合,并且使用循环迭代输出其中的内容:

fun main(args: Array<String>) {
    val myList = MyList()
    myList.add(1)
    myList.add(2)
    myList.add(3)
    for(i in myList){
        println(i)
    }
}

class MyIterator(val iterator: Iterator<Int>) {
    operator fun next(): Int {
        return iterator.next()
    }

    operator fun hasNext(): Boolean {
        return iterator.hasNext()
    }

}

class MyList{
    private val list = ArrayList<Int>()
    fun add(int: Int){
        list.add(int)
    }

    fun remove(int: Int){
        list.remove(int)
    }

    operator fun iterator():MyIterator{
        return MyIterator(list.iterator())
    }
}

异常捕获

异常的捕获处理跟java很相似,相信你一看就懂,直接上代码举例


fun main(args: Array<String>) {
    println("运算结果:${devision(9, 0)}")
}

fun devision(a: Int, b: Int): Double {
    return try {
        (a / b).toDouble()
    } catch (e: ArithmeticException) {
        println("运算出错:${e.message}")
        0.0
    } catch (e: Exception) {
        println("运算出错,${e.message}")
        0.0
    } finally {
        println("感谢使用!")
    }
}


ktExcept.jpg

从上面可以看出try语句也是带有返回值的,返回所执行到的分支语句中的最后一句的执行的结果,如果try语句后面带有finally语句,则执行完finally后再return。

上一篇 下一篇

猜你喜欢

热点阅读