For loop 警告:建议在for循环中用作真值的赋值周围加括号

For loop 警告:建议在for循环中用作真值的赋值周围加括号,for-loop,warnings,parentheses,For Loop,Warnings,Parentheses,我正在编写一个程序,但在for循环方面遇到了问题 for (int i = N-1; i = 0; i--) { guessarray [i] = guess % 10; guess /= 10; }//for 使用我的g++编译器,我不断得到错误警告:建议在用作真值的赋值周围加括号。我知道我在循环中从低到高逆向工作,但我不认为这是一个问题。我试着在不同的地方加上括号,但不起作用。我也知道它与赋值运算符无关,因为我想使用赋值运算符。警告直接放在N-1之后。编译器只是提醒您注意f

我正在编写一个程序,但在for循环方面遇到了问题

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

使用我的g++编译器,我不断得到错误警告:建议在用作真值的赋值周围加括号。我知道我在循环中从低到高逆向工作,但我不认为这是一个问题。我试着在不同的地方加上括号,但不起作用。我也知道它与赋值运算符无关,因为我想使用赋值运算符。警告直接放在N-1之后。

编译器只是提醒您注意for循环中的赋值。这样做可能是因为“for”语句有3个分号分隔的表达式,这些表达式相当密集,并且容易出现人为错误。通过改变

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

您正在告诉编译器,是的,您确实希望i的初始值为(N-1)

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

还要注意的是,for循环的condition部分似乎存在逻辑缺陷(第二个表示错误)

你有

i = 0;
这意味着循环永远不会执行(除非N==1)。我想你的目的是从(N-1)倒计时到0。因此,您可能需要具备以下条件:

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

如果你把帕伦放在周围(N-1),警告会消失吗?不,不幸的是不会……谢谢你的回答!:)但不幸的是,我已经尝试过了,并且不断地得到同样的错误……我还注意到了你的循环中的另一个问题。您的第二个表达式可能不正确。我想你想要的不是“i=0;”,而是“i>=0”。
for (int i = (N-1); i >= 0; i--)  // note the i >= 0 condition