For loop kotlin,如何动态更改for循环速度

For loop kotlin,如何动态更改for循环速度,for-loop,kotlin,For Loop,Kotlin,有时,基于某些条件,它可能希望在for循环中跳转(或向前移动)几步 怎么做是科林 简化的用例: val datArray = arrayOf(1, 2, 3......) /** * start from the index to process some data, return how many data has been consumed */ fun processData_1(startIndex: Int) : Int { // process dataArra

有时,基于某些条件,它可能希望在for循环中跳转(或向前移动)几步

怎么做是科林

简化的用例:

val datArray  = arrayOf(1, 2, 3......)

/**
 * start from the index to process some data, return how many data has been 
   consumed
*/
fun processData_1(startIndex: Int) : Int  {
   // process dataArray starting from the index of startIndex
   // return the data it has processed
}
fun processData_2(startIndex: Int) : Int  {
   // process dataArray starting from the index of startIndex
   // return the data it has processed
}
在Java中,它可以是:

for (int i=0; i<datArray.lenght-1; i++) {
   int processed = processData_1(i);
   i += processed; // jump a few steps for those have been processed, then start 2nd process
   if (i<datArray.lenght-1) { 
       processed = processData_2(i);
       i += processed;
   }
}

使用

var i = 0

while (i < datArray.length - 1) {
    var processed = processData_1(i)
    i += processed // jump a few steps for those have been processed, then start 2nd process
    if (i < datArray.length - 1) {
        processed = processData_2(i)
        i += processed
    }
    i++
}
var i=0
而(i
一起,而

var i = 0

while (i < datArray.length - 1) {
    var processed = processData_1(i)
    i += processed // jump a few steps for those have been processed, then start 2nd process
    if (i < datArray.length - 1) {
        processed = processData_2(i)
        i += processed
    }
    i++
}
var i=0
而(i
您可以使用以下Kotlin文档中所述的
继续执行此操作:

例如:

val names = arrayOf("james", "john", "jim", "jacob", "johan")
for (name in names) {
    if(name.length <= 4) continue
    println(name)
}
val name=arrayOf(“詹姆斯”、“约翰”、“吉姆”、“雅各布”、“约翰”)
用于(名称中的名称){

如果(name.length您可以按照Kotlin文档中的说明使用
continue

例如:

val names = arrayOf("james", "john", "jim", "jacob", "johan")
for (name in names) {
    if(name.length <= 4) continue
    println(name)
}
val name=arrayOf(“詹姆斯”、“约翰”、“吉姆”、“雅各布”、“约翰”)
用于(名称中的名称){

如果(name.length)总是有好的旧
…我认为手动更改计数器变量不是一个干净的解决方案,请使用while代替。总是有好的旧
…我认为手动更改计数器变量不是一个干净的解决方案,请使用while代替