警告:建议在for循环中用作真值的赋值括号

时间:2014-12-19 01:28:24

标签: for-loop warnings parentheses

我正在开发一个程序,但遇到for循环问题

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

使用我的g ++编译器,我不断收到错误“警告:建议用作真值的赋值括号。我明白我在循环中向后工作,从低到高,但我不知道这是怎么回事一个问题。我试过把括号放在不同的地方,但它不起作用。我也知道它与赋值运算符无关,因为我想使用赋值运算符。警告直接放在N-1之后

1 个答案:

答案 0 :(得分:0)

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

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

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

你告诉编译器,是的,你真的打算把i的初始值作为(N-1)。

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

另请注意,for循环的条件部分中存在逻辑缺陷(第二个表示离子)

你有

i = 0;

这意味着循环永远不会执行(除非N == 1)。我假设你的意图是从(N-1)倒数到0.因此你应该有以下几点:

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