📅  最后修改于: 2020-12-30 07:01:47             🧑  作者: Mango
在上一章中,我们了解了Kotlin系统中可用的不同类型的数据类型。在本章中,我们将讨论Kotlin中可用的不同类型的控制流机制。
Kotlin是一种功能性语言,因此就像Kotlin中的每种功能性语言一样, “如果”是一个表达式,则它不是关键字。必要时,表达式“ if”将返回一个值。像其他编程语言一样, “ if-else”块用作初始条件检查运算符。在下面的示例中,我们将比较两个变量并相应地提供所需的输出。
fun main(args: Array) {
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)
// As expression
// val max = if (a > b) a else b
}
上面的代码在浏览器中产生以下输出。我们的示例还包含另一行代码,它描述了如何使用“ If”语句作为表达式。
Maximum of a or b is 5
如果您熟悉其他编程语言,那么您可能听说过术语switch语句,当可以在一个特定变量上应用多个条件时,它基本上是一个条件运算符。 “ when”运算符将变量值与分支条件进行匹配。如果满足分支条件,则它将在该范围内执行该语句。在以下示例中,我们将了解有关Kotlin中“何时”的更多信息。
fun main(args: Array) {
val x:Int = 5
when (x) {
1 -> print("x = = 1")
2 -> print("x = = 2")
else -> { // Note the block
print("x is neither 1 nor 2")
}
}
}
上面的代码在浏览器中产生以下输出。
x is neither 1 nor 2
在上面的示例中,Kotlin编译器将x的值与给定的分支进行匹配。如果它不匹配任何分支,则它将执行else部分。实际上,when等于多个if块。 Kotlin为开发人员提供了另一种灵活性,开发人员可以通过在支票内提供“,”来在同一行中提供多个支票。让我们如下修改上面的示例。
fun main(args: Array) {
val x:Int = 5
when (x) {
1,2 -> print(" Value of X either 1,2")
else -> { // Note the block
print("x is neither 1 nor 2")
}
}
}
在浏览器中运行相同的命令,这将在浏览器中产生以下输出。
x is neither 1 nor 2
循环就是这样的发明,它提供了遍历任何类型的数据结构的灵活性。与其他编程语言一样,Kotlin也提供了多种循环方法,但是,其中“ For”是最成功的一种。 For循环的实现和使用在概念上类似于Java for循环。以下示例说明了如何在实际示例中使用它们。
fun main(args: Array) {
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) {
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的工作方式与其他编程语言完全相同。这两个循环之间的唯一区别是,在“ Do-while”循环中,条件将在循环结束时进行测试。以下示例显示While循环的用法。
fun main(args: Array) {
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) {
var x:Int = 0
do {
x = x + 10
println("I am inside Do block---"+x)
} while(x <= 50)
}
上面的代码在浏览器中产生以下输出。在上面的代码中,Kotlin编译器将执行DO块,然后它将在while块中进行条件检查。
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
如果您熟悉任何编程语言,那么您必须对不同的关键字有所了解,以帮助我们在应用程序中实现良好的控制流程。以下是可用于控制循环或任何其他类型的控制流的不同关键字。
返回-返回是一个关键字返回某个值从调用函数调用函数。在以下示例中,我们将使用Kotlin编码基础实现此方案。
fun main(args: Array) {
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
继续与中断-继续与中断是逻辑问题中最重要的部分。如果某些条件失败,则“ break”关键字将终止控制器流,而“ continue”则相反。所有这些操作都会立即可见。 Kotlin比其他编程语言更智能,其中开发人员可以应用多个标签作为可见性。以下代码展示了我们如何在Kotlin中实现此标签。
fun main(args: Array) {
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,它开始后,如果块一旦达到break语句,整个控制流程终止程序执行执行。