Ибо цикл идет вечно - PullRequest
       1

Ибо цикл идет вечно

0 голосов
/ 17 декабря 2011

Я хочу, чтобы этот цикл уменьшился со значения, которое я установил, с 10 до 0. Почему он продолжается вечно?

int lengthString = 10;

for (int j = lengthString; lengthString > 0; j--)
{
    cout << j;
}

Ответы [ 7 ]

9 голосов
/ 17 декабря 2011

Изменить на

 for (int j = lengthString; j > 0; j--)

lengthString не изменится в вашем цикле.

Кроме того, вы можете убедиться, что lengthString больше 0 (в вашем реальномкод), если вы объявите j как int, потому что, если j инициализирован отрицательным числом, цикл будет выполняться "вечно" (пока он не переполнится и не уменьшится до 0,то есть).

2 голосов
/ 17 декабря 2011

для (int j = lengthString; j> = 0; j -)

2 голосов
/ 17 декабря 2011

Ваше условие выхода - lengthString > 0, и поскольку lengthString в вашем цикле не меняется, вы просто говорите while(10 > 0), что верно всегда.

Я полагаю, вы имели в виду:

for (int j = lengthString; j > 0; j--)
1 голос
/ 17 декабря 2011

Ваш цикл уменьшает j и проверяет, является ли lengthString> 0.

int lengthString = 10;

for (int j = lengthString; j > 0; j--)
{
    cout << j;
}
0 голосов
/ 17 декабря 2011

Попробуйте это:

for (int lengthString = 10, *j = &lengthString; lengthString > 0; lengthString--)
{
    cout << *j;
}
0 голосов
/ 17 декабря 2011

Это должно быть j, что вы проверяете вашу длину больше, чем длина.

for (int j = lengthString; j > 0; j--) 
0 голосов
/ 17 декабря 2011

Вы только уменьшаете j, но условие цикла не использует j

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