2014-12-19 63 views
0

我工作的一个程序,真值的赋值语句前后括号但我有麻烦for循环警告:建议用作for循环

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

随着我的G ++编译器我不断收到错误“警告:我认为我在循环中从低到高反向工作,但我不明白这可能是一个问题,我尝试在不同的地方放置圆括号,但它我也知道它与赋值运算符无关,因为我想使用赋值运算符。警告直接放在N-1之后。

+0

如果你把周围的括号(N-1),并警告会消失吗? – EJK 2014-12-19 01:34:16

+0

不,不幸的是... – aaronk 2014-12-19 01:43:32

回答

0

编译器只是简单地将您的注意力集中在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 
+0

感谢您的回复! :)但不幸的是,我已经试过,并继续得到相同的错误.... – aaronk 2014-12-19 01:41:52

+0

我也注意到你的循环的另一个问题。你的第二个表达式可能不正确。而不是“我= 0;”,我想你想“i> = 0”。 – EJK 2014-12-19 01:48:55

+0

是的!完美的作品!谢谢一堆! – aaronk 2014-12-19 02:03:54