Может быть лучше использовать быстрое перечисление , если вам не нужен индекс:
BOOL odd = YES;
for (id obj in ary) {
odd = !odd;
if (odd) continue;
// do stuff
}
Когда odd
инициализируется, перед циклом рассмотрите неявный индекс(i
в традиционном для цикла), чтобы быть -1.(Это нечетное число.) На первой итерации цикла индекс увеличивается до 0, а флаг odd
меняется на четный (NO
).Флаг не является нечетным, поэтому мы запускаем эту итерацию (индекс 0, 1-й элемент).Следующая итерация увеличивает индекс до 1 (2-й элемент), а флаг инвертируется в нечетный.Поскольку флаг нечетный, мы пропускаем эту итерацию.Выполнение продолжается до конца массива.
Редактировать: Традиционный цикл for с индексом чище, если вы всегда хотите работать с последним элементом.Чтобы сделать это здесь, вам нужно будет отслеживать индекс вручную или повторять содержимое цикла после цикла.