我希望这个循环从我设置的值减少到10到0.为什么它会一直持续下去?
int lengthString = 10;
for (int j = lengthString; lengthString > 0; j--)
{
cout << j;
}
答案 0 :(得分:9)
更改为
for (int j = lengthString; j > 0; j--)
lengthString
在你的循环中不会改变。
另外,如果您将lengthString
声明为j
,则可能需要验证int
是否大于0(在您的真实代码中),因为j
是{{1}} 初始化为负数,循环将“永久”运行(直到它溢出并再次降低到0,即)。
答案 1 :(得分:2)
你的退出条件是lengthString > 0
,因为你的循环中的lengthString没有改变,你只是说while(10 > 0)
,这是永远的。
我相信你的意思是:
for (int j = lengthString; j > 0; j--)
答案 2 :(得分:2)
for(int j = lengthString; j&gt; = 0; j - )
答案 3 :(得分:1)
你的循环递减j,并检查lengthString是否为&gt; 0
int lengthString = 10;
for (int j = lengthString; j > 0; j--)
{
cout << j;
}
答案 4 :(得分:0)
您只是递减j,但循环条件不使用j
答案 5 :(得分:0)
你应该检查你的大于而不是长度串。
for (int j = lengthString; j > 0; j--)
答案 6 :(得分:0)
试试这个:
for (int lengthString = 10, *j = &lengthString; lengthString > 0; lengthString--)
{
cout << *j;
}