Что не так с этим циклом в C? - PullRequest
1 голос
/ 16 февраля 2012
int i;
i=0;
for (i=0;i>2;i++)
    {
     repeat((3),"|",var);
     printf("\n");          
    }

По какой-то причине он попадает в «для» и пропускает его.Я попытался поместить int i вне for и даже инициализировал его вне for, и в отладке он равен нулю.все, что мне нужно сделать, это дважды пройти этот код.

Ответы [ 5 ]

5 голосов
/ 16 февраля 2012

Изменение:

for (i=0;i>2;i++)

до:

for (i=0;i<2;i++)

Вы проверяете, будет ли > 2 потерпеть неудачу, поэтому он никогда не попадет в цикл.

2 голосов
/ 16 февраля 2012

Это из-за вашего условия цикла: i > 2

Переменная i не больше 2, поэтому условие i > 2 будет иметь значение 0 (ЛОЖЬ)

Надеюсь, это поможет

1 голос
/ 16 февраля 2012

Итак, давайте разберем цикл for. Есть три штуки для (шт1; шт2; шт3)

piece1 = установка переменной, это произойдет один раз при первом запуске цикла

piece2 = пока условие выполнено, продолжить цикл

peice3 = в конце каждой итерации выполнить это действие.

Итак, ваш цикл сейчас говорит, что сначала установите i = 0, а i больше 2 (что вы только что сказали, что это не так) ... в этот момент ваш компилятор уже пропущен, потому что условие никогда не будет правда.

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

1 голос
/ 16 февраля 2012
for (i=0;i>2;i++)

Вы хотите

for (i=0;i<2;i++)

В противном случае ваше тело цикла for никогда не будет выполнено.

0 голосов
/ 03 июля 2015

Измените цикл for на (i = 0; i <2; i ++) </p>

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