黑马程序员技术交流社区
标题:
用循环解决打印图形的问题
[打印本页]
作者:
丁旭
时间:
2012-10-14 11:00
标题:
用循环解决打印图形的问题
*
* * *
* * * * *
* * * * * * *
* * * * *
* * *
*
打印上面的菱形图形,我使用的方法是,分开打印最后拼接的方式才成功,有没有一次性打印的方法啊,用for语句实现。
作者:
刘伟平
时间:
2012-10-14 11:31
本帖最后由 刘伟平 于 2012-10-14 11:32 编辑
QQ截图20121014113157.png
(10.69 KB, 下载次数: 57)
下载附件
2012-10-14 11:32 上传
class Test
{
public static void main(String[] args)
{
int x = 0;//行号
int y = 1;
while(x<7)
{
for (int n = 0;n<(4-y) ; n++)
{
System.out.print(" ");
}
for (int n = 0;n<(2*y-1) ; n++ )
{
System.out.print("*");
}
System.out.println();
if (x<3)
{
y++;
}else{
y--;
}
x++;
}
}
}
复制代码
作者:
梁世喜
时间:
2012-10-14 11:36
class Print
{
public static void main(String[] args)
{
int num=10;
for(int i=-(num/2);i<=num/2;i++)
{
for(int k=num-Math.abs(i);k<num;k++)
{
System.out.print(" ");
}
for(int j=0;j<=num-2*Math.abs(i);j++)
{
System.out.print("*");
}
System.out.println();
}
}
}
复制代码
这个有待优化。
有写过一个比较简便的方法,一时忘记了
Math.abs()求绝对值
作者:
焦志鹏
时间:
2012-10-14 11:47
试试看:
class TEXT
{
public static void main(String[] args)
{
int i,j,k;
//i 的值,-3,-2,-1,0,1,2,3
for(i=-3,j=1;i<=3;j++)
{
//对i取绝对值,并传至给k
if(i<0) k=i*(-1);
else k=i;
//如果满足条件,输出空格,且跳出本次循环。
if(j<=k||(j>7-k&&j!=8))
{
System.out.print(" ");
continue;
}
//如果满足条件输出*
if(j>k&&j<=7-k)
{
System.out.print("*");
}
//如果j=8则i自加1,并将0重新赋值为0!
//(只有j在[1,7]范围内才输出)
if(j==8)
{
i++;
j=0;
System.out.println();
}
}
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2