仅在条件匹配时增加for循环的计数

时间:2018-04-28 07:06:53

标签: ios swift for-loop

我是新编码,我在我的项目中使用for循环,我想要的是只在我的条件匹配时才增加for循环的计数,否则循环应该从旧索引开始。 请帮忙!!!

if let countEvent = arrEvent?.count{
        for  i in 0..<countEvent{
            let strStartDate = arrEvent![i]["start_date"].string
            let  dateStart = dateFormatter .date(from: strStartDate!)

            let strEndDate = arrEvent![i]["end_date"].string
            let dateEnd = dateFormatter .date(from: strEndDate!)


            if strCurrentDate == strStartDate{
               //increase count of for loop now
            }else{
               //do not want to increase count of for loop now
            }
        }
    }

1 个答案:

答案 0 :(得分:0)

for循环隐式递增其迭代器。如果要获得对迭代器的显式控制,可以使用for循环替换while循环,如下所示:

var i = 0
while i < countEvent {
    //...
    i += 1
}

这很容易让您有机会将增量语句包装在if子句中,以实现您正在寻找的条件递增行为。

再次,正如@Sulthan所提到的,如果你不增加机会,你会遇到无休止的循环。看起来好像你要么必须改变整个逻辑,要么至少添加另一个终止条件,最终结束无限循环。