我工作的一个程序,真值的赋值语句前后括号但我有麻烦for循环警告:建议用作for循环
for (int i = N-1; i = 0; i--) {
guessarray [i] = guess % 10;
guess /= 10;
}//for
随着我的G ++编译器我不断收到错误“警告:我认为我在循环中从低到高反向工作,但我不明白这可能是一个问题,我尝试在不同的地方放置圆括号,但它我也知道它与赋值运算符无关,因为我想使用赋值运算符。警告直接放在N-1之后。
我工作的一个程序,真值的赋值语句前后括号但我有麻烦for循环警告:建议用作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--)
到
for (int i = (N-1); i = 0; i--)
你告诉编译器,那是你真正想要的初始值的我是(N-1)。
==================
还要注意有什么似乎是在for循环(第2表示的条件部分逻辑缺陷离子)
您有
i = 0;
这意味着循环永远不会执行中(除非n == 1)。我假设你的意图是从(N-1)为0倒计时因此你或许应该具备以下条件:
for (int i = (N-1); i >= 0; i--) // note the i >= 0 condition
如果你把周围的括号(N-1),并警告会消失吗? – EJK 2014-12-19 01:34:16
不,不幸的是... – aaronk 2014-12-19 01:43:32