увеличивать количество циклов for, только если условие соответствует - PullRequest
0 голосов
/ 28 апреля 2018

Я новичок в кодировании, я использую цикл 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 голосов
/ 28 апреля 2018
Цикл

A for неявно увеличивает свой итератор. Если вы хотите получить явный контроль над итератором, вы можете заменить цикл for на цикл while, например:

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

Это легко дает вам возможность обернуть оператор приращения в предложение if, чтобы получить искомое условное поведение приращения.

Опять же, как упомянул @Sulthan, если вы не увеличиваете шансы, вы попадаете в бесконечный цикл. Похоже, что вам придется либо изменить всю логику, либо хотя бы добавить еще одно условие завершения, чтобы в конечном итоге завершить бесконечный цикл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...