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

循环语句

直接上代码示例:


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。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 179,272评论 25 708
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,678评论 19 139
  • 今天是在乌镇的第一天。一个人,一个包。下榻的客栈叫汪星球,有一条小狗叫大黄。 一条有理想的狗,那么小,四肢那么短,...
    远方的阿通阅读 356评论 0 2
  • COB(Client Onboarding客户引导)是指从接触客户到让新客户熟悉公司、产品服务的过程,这不是一个新...
    跨界IT阅读 12,555评论 0 4
  • 时光荏苒,外婆今年90岁了,回忆小时侯连走路都需要扶持的岁月,已是匆匆三十年了。 小时候,家里不算穷,住在一...
    小冬瓜和小西瓜的妈妈阅读 380评论 2 0

友情链接更多精彩内容