2014-12-19 1 views
0

Я работаю над программой, но у меня возникают проблемы с цикломпредупреждения: предложить круглые скобки вокруг присваивания, используемые в качестве истинного значения в течение цикла

for (int i = N-1; i = 0; i--) { 
    guessarray [i] = guess % 10; 
    guess /= 10; 
}//for 

С моим г ++ компилятором Я постоянно получаю ошибку «предупреждение: предложите круглые скобки вокруг присваивания, используемые как значение истины. Я понимаю, что я работаю в обратном порядке, от низкого до высокого, но я не вижу, как это может быть проблемой. Я попытался вставить круглые скобки в разных местах, но это не работает. Я также знаю, что это не имеет никакого отношения к оператору присваивания, поскольку я хочу использовать оператор присваивания. Предупреждение помещается непосредственно после N-1.

+0

Если поставить скобки вокруг (N-1), это предупреждение уходит? – EJK

+0

Нет, к сожалению, нет ... – aaronk

ответ

0

Компилятор просто обращает ваше внимание на назначение в цикле for. Вероятно, это происходит потому, что оператор «for» имеет 3 выражения с разделителями с запятой, которые довольно плотные и подвержены человеческой ошибке. Изменяя

for (int i = N-1; i = 0; i--) 

в

for (int i = (N-1); i = 0; i--) 

вы сообщаете компилятор, что да, вы действительно предназначены для начального значения я быть (N-1).

==================

Отметим также, что есть то, что, как представляется, логический изъян в разделе условие для цикла (2-й экспрессов ион)

Вы

i = 0; 

что означает, что цикл никогда не выполнится (если N == 1). Я полагаю, ваше намерение было отсчитывать от (N-1) до 0. Таким образом, Вы, вероятно, следует иметь следующее:

for (int i = (N-1); i >= 0; i--) // note the i >= 0 condition 
+0

Спасибо за ответ! :) но, к сожалению, я уже пробовал это и продолжаю получать ту же ошибку .... – aaronk

+0

Я также заметил еще одну проблему с вашей петлей. Ваше второе выражение может быть неправильным. Вместо «i = 0;», я думаю, вы хотите «i> = 0». – EJK

+0

Да! это прекрасно работает! огромное спасибо! – aaronk