Kotlin2.4while和for循环

作者: 无心下棋 | 来源:发表于2018-05-13 21:28 被阅读52次

Kotlin的迭代应该是和Java最接近的。while循环和Java完全一样。for循环仅以唯一一种形式存在,和Java的for-each循环一致。

2.4.1while循环

Kotlin中有while循环和do-while循环,它们的语法和Java中相应的循环没有任何区别:

while(condition) {
  **
}

do {
   **
} while (condition)

2.4.2迭代数字:区间和数列

在Kotlin中没有常规的Java for循环。在这种循环中,先初始化变量,在循环的每一步更新它的值,并在值满足某个限制条件时退出循环。为了替代最常见的循环用法,Kotlin使用了区间的概念。
区间本质上就是两个值之间的间隔,这两个值通常是数字:一个起始值,一个结束值。只用..运算符表示区间:

val oneToTen = 1..10

注意Kotlin的区间是包含的或者闭合的,意味着这两个值始终是区间的一部分。

for (i in 1..100) {
    print(i)
}

2.4.3迭代map

让我们来看看可以怎样迭代map:

val binaryReps = TreeMap<Char, String>()
for (c in 'A'..'F') {
     val binary = Integer.toBinaryString(c.toInt())
     binaryReps[c] = binary
}

..语法不仅可以创建数字区间,还可以创建字符区间。这里使用它迭代用A开始到F的所有字符,包括F。
这里用到了另外一个实用的小技巧,根据键来访问和更新map的简明语法。可以使用map[key]读取值,并使用map[key] = vaule设置它们,而不需要调用get和put。

2.4.4使用in检查集合和区间的成员

使用in运算符来检查一个值是否在区间中,或者它的逆运算!in来检查这个值是否不在区间中:

fun isLetter(c: Char) = c in 'a'..'z' || c in 'A'..'Z'
fun isNotDigit(c: Char) = c !in '0'..'9'
>>>println(isLetter('l'))
true
>>>println(isNotDigit('y'))
true

in运算符和!in运算符也适用于when表达式:

fun recognize(c: Char) = when (c) {
        in '0'..'9' -> "是数字"
        in 'a'..'z', in 'A'..'Z' -> "是字母"
        else -> "不知道是啥"
    }
>>>println(recognize('2'))
是数字    

相关文章

  • Kotlin2.4while和for循环

    Kotlin的迭代应该是和Java最接近的。while循环和Java完全一样。for循环仅以唯一一种形式存在,和J...

  • While循环和for循环

    1.while 循环 和生活中的循环类似,Python 中的循环指重复执行有规律的操作。所以一切重复的事情都可以“...

  • while循环和for循环

    while 循环 while(true){// 无意义 死循环console.log("一直执行");}while...

  • for循环in和of

    for ... in 把一个对象的所有属性依次循环出来: 要过滤掉对象继承的属性,用hasOwnProperty(...

  • JavaScript-循环语句

    循环语句有两种 for 和 while 。 while 循环 for 循环 do...while 循环 这个循环和...

  • 体循环和肺循环

  • “厄运循环”和“快乐循环”

    《阈限思维》作者提到这样一件事: 他们家收养了一只营救犬‘暴脾气’,圣诞夜晚宴时,他们给这只狗一根大骨头,狗变得凶...

  • 增强for循环和普通 for循环

    整体来说: 增强型for循环使用起来比较方便,代码也比较简单,如果只是操作集合中元素的而不使用索引的话,建议用此方...

  • 正循环和逆循环

    ️人活明白了,从此做什么都成功,走向正循环的道路; ️人活不明白,做什么都受挫,在负循环的圈子跳不出来,成了懂很多...

  • typescript笔记(四)

    一、循环:for循环、for...in...循环、for…of 、forEach、every 和 some 循环、...

网友评论

    本文标题:Kotlin2.4while和for循环

    本文链接:https://www.haomeiwen.com/subject/klkrdftx.html