Kotlin 控制流程
-
控制流程
在上一章中,我们了解了Kotlin系统中可用的不同类型的数据类型。在本章中,我们将讨论Kotlin中可用的不同类型的控制流机制。 -
if...else...
Kotlin是一种功能语言,因此就像Kotlin中的每种功能语言一样,“if”是一种表达,则它不是关键字。必要时,表达式“if”将返回一个值。像其他编程语言一样,“if-else”块用作初始条件检查运算符。在下面的示例中,我们将比较两个变量并相应地提供所需的输出。
尝试一下fun main(args: Array<String>) { val a:Int = 5 val b:Int = 2 var max: Int if (a > b) { max = a } else { max = b } print("Maximum of a or b is " +max) // 作为表达式 // val max = if (a > b) a else b }
输出:Maximum of a or b is 5
-
when
如果您熟悉其他编程语言,那么您可能听说过术语switch语句,当可以将多个条件应用于特定变量时,它基本上是一个条件运算符。“when”运算符将变量值与分支条件进行匹配。如果满足分支条件,则它将在该范围内执行该语句。在以下示例中,我们将学习有关Kotlin中“when”的更多信息。
尝试一下fun main(args: Array<String>) { val x:Int = 5 when (x) { 1 -> print("x = = 1") 2 -> print("x = = 2") else -> { // 没有匹配到 print("x is neither 1 nor 2") } } }
输出:x is neither 1 nor 2
在上面的例子中,Kotlin编译器将x的值与给定的分支匹配。如果它不匹配任何分支,那么它将执行else部分。实际上,when等于多个if块。Kotlin为开发人员提供了另一种灵活性,开发人员可以通过在检查中提供“,”在同一行中提供多个检查。让我们修改上面的例子如下。
尝试一下fun main(args: Array<String>) { val x:Int = 1 when (x) { 1,2 -> print(" Value of X either 1,2") else -> { // Note the block print("x is neither 1 nor 2") } } }
输出:Value of X either 1,2
-
for 循环
循环就是这样一种发明,它提供了通过任何类型的数据结构进行迭代的灵活性。与其他编程语言一样,Kotlin也提供了多种循环方法,但是其中“For”是最成功的一种。For循环的实现和使用在概念上类似于Java For循环。下面的例子展示了我们如何在现实生活中使用相同的例子。
尝试一下fun main(args: Array<String>) { val items = listOf(1, 2, 3, 4) for (i in items) println("values of the array"+i) }
在上面的代码中,我们声明了一个名为“items”的列表,并使用for 循环迭代这个定义的列表并在浏览器中打印它的值。下面是输出。values of the array1 values of the array2 values of the array3 values of the array4
下面是另一个代码示例,其中我们使用一些库函数使开发工作比以前更容易。
尝试一下fun main(args: Array<String>) { val items = listOf(1, 22, 83, 4) for ((index, value) in items.withIndex()) { println("the element at $index is $value") } }
一旦在我们的编码环境中编译并执行了上述代码,它将在浏览器中产生以下输出。the element at 0 is 1 the element at 1 is 22 the element at 2 is 83 the element at 3 is 4
-
While循环和Do-While循环
While和Do-While的工作方式与其他编程语言完全相同。这两个循环之间的唯一区别是,在 Do-while”循环中,条件将在循环结束时进行测试。以下示例显示While循环的用法。
尝试一下fun main(args: Array<String>) { var x:Int = 0 println("Example of While Loop--") while(x< = 10) { println(x) x++ } }
输出:Example of While Loop-- 0 1 2 3 4 5 6 7 8 9 10
Kotlin还具有另一个称为Do-While循环的循环,该循环主体将执行一次,然后才检查条件。以下示例显示了Do-while循环的用法。
尝试一下fun main(args: Array<String>) { var x:Int = 0 do { x = x + 10 println("I am inside Do block---"+x) } while(x <= 50) }
输出:I am inside Do block---10 I am inside Do block---20 I am inside Do block---30 I am inside Do block---40 I am inside Do block---50 I am inside Do block---60
-
使用return,break,continue
如果您熟悉其他任何编程语言,那么您必须对不同的关键字有所了解,以帮助我们在应用程序中实现良好的控制流程。以下是可用于控制循环或任何其他类型的控制流的不同关键字。return - return是一个关键字,它从被调用函数向调用函数返回一些值。在以下示例中,我们将使用Kotlin编码基础实现此方案。
尝试一下fun main(args: Array<String>) { var x:Int = 10 println("The value of X is--"+doubleMe(x)) } fun doubleMe(x:Int):Int { return 2*x; }
在上面的代码中,我们正在调用另一个函数,并将输入乘以2,然后将结果值返回到作为主函数的被调用函数。Kotlin以不同的方式定义函数,我们将在下一章中介绍它。现在,足以理解上面的代码将在浏览器中生成以下输出。The value of X is--20
continue与break -continue与break是逻辑问题中最重要的部分。如果某些条件失败,则“break”关键字将终止控制器流,而“continue”则相反。所有这些操作都会立即可见。Kotlin比其他编程语言更智能,其中开发人员可以应用多个标签作为可见性。以下代码展示了我们如何在Kotlin中实现此标签。
尝试一下fun main(args: Array<String>) { println("Example of Break and Continue") myLabel@ for(x in 1..10) { // appling the custom label if(x == 5) { println("I am inside if block with value"+x+"\n-- hence it will close the operation") break@myLabel //specifing the label } else { println("I am inside else block with value"+x) continue@myLabel } } }
输出Example of Break and Continue I am inside else block with value1 I am inside else block with value2 I am inside else block with value3 I am inside else block with value4 I am inside if block with value5 -- hence it will close the operation
如您所见,控制器继续循环,直到且除非x的值为5。一旦x的值达到5,它就开始执行if块,一旦达到break语句,整个控制流就终止程序的执行。