回 帖 发 新 帖 刷新版面

主题:for循环

#include <iostream>
using namespace std;
int main()
{
int i;
for(i=5;i>0;i--)
cout<<"*"<<endl;
system("pause");
}
请问输出的为什么是
*
*
*
*
*

为什么不是
*****
****
***
**
*
谢谢 请帮小弟分析下[em2]

如果是for(i=5;i>0;i-2)
为什么会进入无限循环??谢谢!!

回复列表 (共5个回复)

沙发

#include <iostream>
using namespace std;
int main()
{
int i;
for(i=5;i>0;i--)
cout<<"*"<<endl;
system("pause");
}
请问输出的为什么是
*
*
*
*
*

为什么不是
*****
****
***
**
*
谢谢 请帮小弟分析下 

如果是for(i=5;i>0;i-2)
为什么会进入无限循环??谢谢!!

-----------------------------------------------------------------------------

for循环中只有一句"cout<<"*"<<endl",当然每次循环只输出一个"*"符号
你若想实现输出为
*****
****
***
**
*
可以使用嵌套的循环
for(i=5;i>0;i--)
    for(int j=0;j<i;j++)
        cout<<"*"<<endl;
对于你的最后一个问题,只能说你不懂得FOR语句的使用规则,如下:
FOR(语句1;语句2;语句3)
循环体;
执行时先执行语句1,再经语句2(通常是一个判定),执行循环体,最后执行语句3,再回到语句2处,满足条件,继续循环,否则退出循环
如果是for(i=5;i>0;i-2),i为2,那么i>0为永真,当然这是一个死循环
你的基础比较差,如果是这样最好还是先看看书,在读程序~本人的一点建议,说的不对请包涵

板凳

大哥,for(i=5;i>0;i--)
第一个表达式等于5啊,执行以后再进入第二个表达式,那么出来5个“*”,再一个接一个得减。这么想不对么?谢谢!

3 楼

不对 一个表达式为5 是循环次数 不是*的个数 是5次循环 每次输出一个*

4 楼

#include <iostream>
using namespace std;
int main()
{
int i,j;
for (i=0;i<5:i++)
{
for(j=5;j>i;j--)
cout<<"*";
cout<<endl;
}
system("pause");
}

5 楼

看来楼主应该好好看书!

我来回复

您尚未登录,请登录后再回复。点此登录或注册