用while语句怎么实现三角形打印

bawfnwy 2008-11-30 12:07:00
我用for语句实现了三角形的打印 效果如下
*
**
***
****
*****
这样 代码是
Console.WriteLine("请输入你要打印的行数");
int lines=lines.Pares(Console.ReadLine());
for(int i=0;i<=lines;i++)
{
for(int j=0;i>j;j++)
{
Console.Write("*");
}
Console.Write("\n");
}

我想用while来实现三角形的打印 不知道为什么不行 下面是我写的 请大家指点一下 谢谢
Console.WriteLine("请输入你要打印的行数");
int lines=lines.Pares(Console.ReadLine());
int i=0;
int j=0;
while(i<=lines)
{
if(i>j)
{
Console.Write("*");
j++;
}
Console.Write("\n");
i++;
}

...全文
1385 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
止戈而立 2008-11-30
  • 打赏
  • 举报
回复
另外就是i的初始值问题,你注意看的话,应该会看到我已经将i的初始值改成1了。
因为while(i <=lines),如果i从0开始,那么就要执行lines+1次。。

当然,不改i的初始值,还是保持为0也可以,但要改另外两个地方:
while(i<lines)

if(i>=j)

因此,你上面的for循环也是有这个小问题的,虽然对你最后的打印结果没多大影响,只是多打了一行换行符。
bawfnwy 2008-11-30
  • 打赏
  • 举报
回复
太谢谢min_jie的提示 一下子明白了 ,你看我的用while语句这样写 还有其他的写法么
止戈而立 2008-11-30
  • 打赏
  • 举报
回复
打印完1行,即打印了一个*后,再打印一个换行\n
这时i自增长,j要归0,然后打印第2行,如果你j不归0,打印第2行时,此时i的值为2,而j的值是1(因为在前面打印第1行时执行过一次j++),那么if(i>j)就只能执行一次后,就会执行打印换行符\n,因为此时i为2,j也为2了。。
依次类推。。
bawfnwy 2008-11-30
  • 打赏
  • 举报
回复
我学校关电了 我在网吧 上面的朋友 你说的归0后效果是什么样子的呢 归0了前面的j累加会不会没了而不加*号呢 现在在网吧 没办法调试。。
止戈而立 2008-11-30
  • 打赏
  • 举报
回复
Console.WriteLine("请输入你要打印的行数"); 
int lines=lines.Pares(Console.ReadLine());
int i=1;
int j=0;
while(i <=lines)
{
if(i>j)
{
Console.Write("*");
j++;
}
Console.Write("\n");
i++;
j=0;//j要重新归0
}
bawfnwy 2008-11-30
  • 打赏
  • 举报
回复
恩 非常感谢你的帮助哦! 我已经明白了 我把分给你加上哈!

111,131

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧