как использовать изменение цикла for в Swift 3.2?

У меня есть преобразованный цикл for в Swift 3.2, который выглядит примерно так:

for var i in 0..<char.characters.count {
    if(self.characters.count > len  && ((currentIndex + length2323) < length))
    {
      i = i - 1
    }
}

Но это не работает должным образом. Я хочу продолжить цикл, когда заданное значение для i равно i = i - 1, но этот код выходит из цикла

И мой предыдущий код Swift 2:

for(var i = 0 ; i < char.characters.count ; i += 1) {
     if(self.characters.count > len  && ((currentIndex + length2323) < length))
     {
        i = i - 1
     }
}

person New-Learner    schedule 31.01.2018    source источник
comment
Вы всегда можете преобразовать цикл for в стиле C в цикл while, например этот   -  person vacawama    schedule 31.01.2018
comment
Кстати, можете ли вы объяснить, что делает внутренний цикл if?   -  person user28434'mstep    schedule 31.01.2018
comment
пожалуйста, попробуйте мой код ниже, было бы здорово, если бы вы разместили весь свой код с cntext и какую проблему он должен решить...   -  person swift2geek    schedule 31.01.2018
comment
Используется ли i для чего-то, что не включено в этот код? В коде, который вы включили, никакие переменные не изменяются, а i доступен только внутри тела цикла (и нигде не читается и не передается).   -  person David Rönnqvist    schedule 31.01.2018


Ответы (1)


Синтаксис Swift 4

import UIKit
var char = "char"
var len = 9
var currentIndex = 1
var length2323 = 2323
var length = 17
for var i in 0..<char.count {
if (self.count > len)  && ((currentIndex + length2323) < length) {
    i = i - 1
}

}

Синтаксис Swift 3.2

import UIKit
var char = "char"
var len = 9
var currentIndex = 1
var length2323 = 2323
var length = 17
for var i in 0..<char.characters.count {
if (self.characters.count > len)  && ((currentIndex + length2323) < length) {
    i = i - 1
}

}

person swift2geek    schedule 31.01.2018
comment
Почему i и символы, и число внутри тела цикла? Кроме того, если вы определяете/затеняете i внутри тела цикла таким образом, это будет новое значение, которое начинается с 0 для каждой итерации. Я не думаю, что это то, что ищет ОП. - person David Rönnqvist; 31.01.2018
comment
В своем цикле for вы только что изменили for var i in 0..<characters.count на for var i in 0...char.characters.count Так это работает для меня? - person New-Learner; 31.01.2018
comment
@ Новичок, что вы должны делать, если оператор? Скорее всего проблема в себе. Что такое самообъект? - person swift2geek; 31.01.2018
comment
@swift2geek содержит строку типа (Peri Peri Sauce Chinese Menu4) - person New-Learner; 31.01.2018
comment
@New-Learner хорошо, тогда я должен быть в выражении if, я внес некоторые изменения - person swift2geek; 31.01.2018
comment
Давайте продолжим обсуждение в чате. - person swift2geek; 31.01.2018