for(int x=0;x<4;x++)
{
for(int y=x;y<4;y++)
{
System.out.print(" ");
}
System.out.println();
}
接着打印等腰三角形,其中要求是空心的:那么,先做实心的,也是大圈套小圈
for(int x=0;x<5;x++)
{
for(int y=x;y<4;y++)
{
System.out.print("x");
}
System.out.println();
}
现在先考虑等腰三角形的每一行是接续在左侧空格之后的,所以考虑两组for嵌套进行合并
for(int x=0;x<5;x++)
{
for(int y=x+1;y<5;y++)
{
System.out.print(" ");
}for(int z=0;z<x*2+1;z++){System.out.print("x");}System.out.println();}
最后考虑空心的问题,嗯,空心,那么也就是当满足如下条件的时候,等腰三角形的内循环要输出字符“x”,否则输出空格:1、外循环第一行时与最后一行时
for(int x=0;x<5;x++)
{
for(int y=x+1;y<5;y++)
{
System.out.print(" ");
}
for(int z=0;z<x*2+1;z++)
{
//x==0为外循环第一行时,x==4为外循环为最后一行时
//z==0为内循环第一个字符时,z==x*2为内循环最后一个字符时
if(x==0||x==4||z==0||z==x*2)
{
//这个是全角的x,与上下的两个全角的空格是为了防止英文字体造成变形,因为有些字体的空格与字符并不等宽。
System.out.print("X");
}
else
{
System.out.print(" ");
}
}
System.out.println();
}
赵顺超 发表于 2014-7-13 13:54
用for嵌套,然后在里面的循环中加上if判断一下,应该是判断两次,满足条件星号,else空字符串 ...
OCTSJimmy 发表于 2014-7-13 10:18
设有需求要打印一个五行的等腰三角形,如下图所示,其中,“-”代表三角形左侧的空格,“_”代表三角形中的 ...
OCTSJimmy 发表于 2014-7-13 10:18
设有需求要打印一个五行的等腰三角形,如下图所示,其中,“-”代表三角形左侧的空格,“_”代表三角形中的 ...
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |