我正在开发一个程序,但遇到for循环问题
for (int i = N-1; i = 0; i--) {
guessarray [i] = guess % 10;
guess /= 10;
}//for
使用我的g ++编译器,我不断收到错误“警告:建议用作真值的赋值括号。我明白我在循环中向后工作,从低到高,但我不知道这是怎么回事一个问题。我试过把括号放在不同的地方,但它不起作用。我也知道它与赋值运算符无关,因为我想使用赋值运算符。警告直接放在N-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