Декремент для цикла? - PullRequest
       20

Декремент для цикла?

1 голос
/ 06 ноября 2011

Я могу увеличить цикл FOR в xcode, но по какой-то причине обратное, а именно уменьшение, не работает.

Это инкремент прекрасно работает, конечно:

for (int i=0; i<10; ++i) {
    NSLog(@"i =%d", i);
}

Но это уменьшение не производит ничего:

for (int i=10; i<0; --i) {
    NSLog(@"i =%d", i);
}

У меня должен быть неправильный синтаксис, но я считаю, что это правильно для Objective C ++ в xcode.

Ответы [ 5 ]

14 голосов
/ 06 ноября 2011

Я думаю, что вы имеете в виду > вместо <:

for (int i = 10; i > 0; --i) {

Если вы хотите, чтобы значения i были такими же, как в исходном коде, за исключением обратного порядка (т.е. 9, 8, 7, ..., 1, 0) тогда вам также нужно изменить границы:

for (int i = 9; i >= 0; --i) {
3 голосов
/ 06 ноября 2011

Я просто хочу добавить, чтобы иметь в виду, что сначала --i уменьшается, затем проверяет и i-- проверяет, затем уменьшает.

2 голосов
/ 06 ноября 2011

Необходимо, чтобы условие было i> 0 (если i начинается с 10, то 10 <0 ложно, поэтому он никогда не выполняет код цикла). </p>

1 голос
/ 06 ноября 2011

Вы проверяете i < 0. Это неверно в первой итерации, поэтому цикл не выполняется. Вместо этого измените его на i > 0.

0 голосов
/ 06 ноября 2011

Изменить условие завершения с i<0 на i>0

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