Java /Kotlin在for循环中获取step +1的值,并且在for循环中的if条件前一步

5jvtdoz2  于 2023-02-20  发布在  Java
关注(0)|答案(2)|浏览(173)

我目前正在创建一个程序,以检查订单状态(待定或确认),当用户打开应用程序现在的问题是,如果我需要检查订单时间后,我检查时间(当前时间)在这个时间范围内检查多少次我改变价格,并比较价格是否匹配。
那么我怎么才能检查i之前的一步,比如i是3,我还需要在其中包含2,并在每个循环中比较i的值和i +1的值,而不使索引脱离绑定。
代码:

for (i in 0 until arrTriple!!.size){
   if (arrTriple[i].third >= ordertime){ //arrTriple[i].third is time when when I change price
      
     //Need this value also without getting indexoutofbond  = arrTriple[i+1].third 
     //So I can use my logic here.

   }
 }
5cnsuln7

5cnsuln71#

我想我明白你的意思了,你能不能从i = to 1开始,用i-1代替i +1?

for (i in 1 until arrTriple!!.size) {
   if (arryTriple[i-1].third >= overtime {
      arrTriple[i].third
   }
}

你会遇到一个边缘情况,arrTriple.size == 1,你仍然需要处理。
编辑:
否则,只需添加一个if检查。

for (i in 0 until arrTriple!!.size){
  if (arrTriple[i].third >= ordertime && (i+1) < arrTriple.size){ 

  }
}
gfttwv5a

gfttwv5a2#

不一定需要until,可以这样编写

for(element in arrTriple!!){
    if(element.third >= ordertime){ 
        // Your logic here
    }
}

这就是我的方法

相关问题