Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何为循环编写复杂的Kotlin_Kotlin - Fatal编程技术网

如何为循环编写复杂的Kotlin

如何为循环编写复杂的Kotlin,kotlin,Kotlin,编写简单的循环(如0..10中的i)很容易,但如何编写更复杂的循环(如: for (byte i = 1 << 7; i != 0; i >>= 1) 或 感谢您的帮助。这不是Kotlin中for循环的用途。您可以改用普通while语句 var i: Int = 1 shl 7 while (i != 0) { // . . . i = i shr 1 } 这不是Kotlin中for循环的用途。您可以改用普通while语句 var i: Int = 1

编写简单的循环(如0..10中的i)很容易,但如何编写更复杂的循环(如:

for (byte i = 1 << 7; i != 0; i >>= 1)

感谢您的帮助。

这不是Kotlin中for循环的用途。您可以改用普通while语句

var i: Int = 1 shl 7
while (i != 0) {
    // . . .
    i = i shr 1
}
这不是Kotlin中for循环的用途。您可以改用普通while语句

var i: Int = 1 shl 7
while (i != 0) {
    // . . .
    i = i shr 1
}

如果您不喜欢var,并且可以使用序列,您也可以使用类似的内容,例如:

generateSequence(1 shl 7) {
  it shr 1
}
    .takeWhile { it != 0 }
    .forEach { ... }

// or: generateSequence(1 shl 7) { (it shr 1).takeIf { it != 0 } }.forEach { ... }

否则,Michaels关于使用while的回答是完全正确的。

如果您不喜欢使用var,并且可以使用序列,您也可以使用类似的内容,例如:

generateSequence(1 shl 7) {
  it shr 1
}
    .takeWhile { it != 0 }
    .forEach { ... }

// or: generateSequence(1 shl 7) { (it shr 1).takeIf { it != 0 } }.forEach { ... }

否则,Michaels关于使用while的回答是非常好的。

我喜欢避免使用vars,并发现自己越来越多地使用这种风格,遗憾的是Java在这方面做得很差。不过,我想对于简单的循环,我会继续使用老式的方法。@MichaelPiefel我现在几乎在任何地方都会使用它。。。我真的很喜欢那个种子,下一个值函数和循环终止条件彼此非常接近。。。也许我也只是看到了种子;次值函数;循环终止条件语句太频繁,所以我认为我需要这个构造-我喜欢避免使用VAR,并且发现自己越来越多地使用这种风格,遗憾的是Java在这方面做得很差。不过,我想对于简单的循环,我会继续使用老式的方法。@MichaelPiefel我现在几乎在任何地方都会使用它。。。我真的很喜欢那个种子,下一个值函数和循环终止条件彼此非常接近。。。也许我也只是看到了种子;次值函数;循环终止条件语句太频繁,所以我认为我需要这个构造-