zoukankan      html  css  js  c++  java
  • Kotlin------流程控制语句

    流程控制语句是编程语言中的核心之一。可分为:

    分支语句(ifwhen)

    循环语句(forwhile )和

    跳转语句 (returnbreakcontinuethrow)等。

     if表达式

    f-else语句是控制程序流程的最基本的形式,其中else是可选的。

    在 Kotlin 中,if 是一个表达式,即它会返回一个值(跟Scala一样)。

    代码示例:

    /**
     * Created by jack on 2017/6/9.
     */
    
    
    fun main(args: Array<String>) {
        println(max(1, 2))
    }
    
    fun max(a: Int, b: Int): Int {
    
    // 作为表达式
        val max = if (a > b) a else b
        return max //  return if (a > b) a else b
    }
    
    fun max1(a: Int, b: Int): Int {
        // 传统用法
        var max1 = a
        if (a < b) max1 = b
        return max1
    
    }
    
    fun max2(a: Int, b: Int): Int {
    
    // With else
        var max2: Int
        if (a > b) {
            max2 = a
        } else {
            max2 = b
        }
        return max2
    }

    另外,if 的分支可以是代码块,最后的表达式作为该块的值:

    fun max3(a: Int, b: Int): Int {
        val max = if (a > b) {
            print("Max is a")
            a
        } else {
            print("Max is b")
            b
        }
        return max
    }

    if作为代码块时,最后一行为其返回值。

    另外,在Kotlin中没有类似true? 1: 0这样的三元表达式。对应的写法是使用if else语句:

    if(true) 1 else 0

    when表达式

    Kotlin中的When和If一样,既可以作为语句,也可以作为表达式,在作为语句时,它相当于Java中的switch。下面是对传入的参数input做一个判断

    fun useWhen(input: Int) {
        var result = when (input) {
            //判断input是否为1
            1 -> println("input == 1")
            //判断input是否为2
            2 -> {
                println("input == 2")
            }
            //input是否在10到20的范围内
            in 10..20 -> println("input number in the range")
            //input是否不在20到30的范围内
            !in 20..30 -> println("input number outside the range")
            else -> { //When作为表达式使用时,最后一定要以else
                println("input: $input")
            }
        }
        println("result: $result")
    }

    从上面的代码看,你会发现它比Java的switch灵活多了。这里只是使用When语句,如果要使用When表达式,则应该If表达式一样,最终一定要以else结尾。

    for循环

    for循环能够对任何提供迭代器(iterator)的对象进行遍历,语法格式如下:

    for (item in collection){
        //代码块
        ...
    }

    和Java有区别,但是也非常简单,Kotlin中的for更类似Java中的增强for循环。

    fun useFor() {
        val students: Array<String> = arrayOf("小主", "小超", "小七")
        for (student in students) {//输出学生名字
            println("student: $student")
        }
        for ((index, student) in students.withIndex()) {//输出学生的下标和名字
            println("the element at $index is $student")
        }
    }

    While循环

    Kotlin中的white(){}和do{}while()和Java差不多,这里不多做赘述。

    fun userWhile() {
        var counter = 10
        while (counter > 0) {
            counter--
            println("counter: $counter")
        }
        do {
            counter++
            println("counter: $counter")
        } while (counter < 10)
    }

    返回和跳转

    Kotlin和Java一样有下面三种跳转表达式

    • continue:跳过这一次循环
    • break:终止包裹它的循环
    • return:从包裹它的函数或者匿名函数中返回

    以上三种跳转都支持跳转到指定的标签处。标签的使用方式也简单,使用@在对应的循环或者匿名函数做标记即可,就像下方的示例代码一样

    
    
    /**
    * 跳除循环和退出
    */
    fun showType3(){
    loop@ for (i in 1..11){
    if (i==2){
    continue@loop
    }
    if (i== 5){
    break@loop
    }
    println(i)
    }
    }
     
     
  • 相关阅读:
    Java 第十一届 蓝桥杯 省模拟赛 洁净数
    Java 第十一届 蓝桥杯 省模拟赛 第十层的二叉树
    Java 第十一届 蓝桥杯 省模拟赛 第十层的二叉树
    Java 第十一届 蓝桥杯 省模拟赛 第十层的二叉树
    Java 第十一届 蓝桥杯 省模拟赛 70044与113148的最大公约数
    Java 第十一届 蓝桥杯 省模拟赛 70044与113148的最大公约数
    20. Valid Parentheses
    290. Word Pattern
    205. Isomorphic Strings
    71. Simplify Path
  • 原文地址:https://www.cnblogs.com/zhangqie/p/7455769.html
Copyright © 2011-2022 走看看