2011-12-16 78 views
-4

我希望此循环从我设置的值从10减少到0.为什么它会一直持续下去?For循环将永远存在

int lengthString = 10; 

for (int j = lengthString; lengthString > 0; j--) 
{ 
    cout << j; 
} 
+18

再看一遍。耐心一点。使用力量。认为。 – 2011-12-16 20:58:13

+0

哈哈哈!这就是最好的答案yetr – mystycs 2011-12-16 20:59:32

+8

Kerrek的评论是成为一名更好的程序员的最佳选择。如果你经常被困在这样的事情上,而没有学会自己找到它们,那么你真的会遇到复杂的事情。 – Almo 2011-12-16 21:00:05

回答

9

更改为

for (int j = lengthString; j > 0; j--) 

lengthString不会在你的循环变化。

此外,您可能要验证lengthString大于0(您的真实代码)如果你声明jint,因为如果j初始化为负数时,循环运行“永远” (直到它溢出并再次减少到0,即)。

+1

哇!我不相信我完全错过了!!!!!!! – mystycs 2011-12-16 20:59:21

0

你只递减Ĵ,但循环条件不使用Ĵ

2

你退出条件lengthString > 0,由于lengthString不在你循环改变你刚刚说while(10 > 0),这永远是真的。

我相信你的意思是:

for (int j = lengthString; j > 0; j--) 
0

这应该是你在你的大于,不lengthstring检查学家

for (int j = lengthString; j > 0; j--) 
1

你的环递减j和检查lengthString是> 0

int lengthString = 10; 

for (int j = lengthString; j > 0; j--) 
{ 
    cout << j; 
} 
2

对(INT J = lengthString; J>时= 0; j--)

0

尝试这一个:

for (int lengthString = 10, *j = &lengthString; lengthString > 0; lengthString--) 
{ 
    cout << *j; 
}