- /*
- 需求:打印一个空心的菱形
- 思路:通过for循环来实现实体菱形的打印,通过if判断语句来挖空菱形
- 步骤:
- 1,定义2个方法,分别打印菱形的上半部分和下半部分
- 2,第一个方法,中通过一个外循环和2个内循环,其中一个内循环完成菱形的挖空动作
- 3,同理完成下半部分的菱形的打印e
- ----*
- ---* *
- --* * * 上半部分
- -* * * * ------------
- --* * * 下半部分
- ---* *
- ----*
- */
- class Demo1
- {
- public static void main(String[] args)
- {
- //System.out.println("Hello World!");
- pb();
- db();
- }
- /*
- 打印菱形的上半部分
- ----*
- ---* *
- --* * * 上半部分
- -* * * * ------------
- */
- public static void pb()
- {
- for(int i=1;i<=4;i++) //外循环主要是控制行数,按照需求上半部分主要有4行组成
- {
- //控制每行打印的空格数
- for(int k=i;k<=4;k++)
- {
- System.out.print(" ");//每行的空格数按照4 3 2 1 的方式递减,每次i取完值for循环减少一次
- }
- //每一行打印星号的个数
- for(int j=1;j<=i;j++)//每行星星的个数是1 2 3 4 ,每次循环的次数是i的值
- {
- if(j==1||j==i)//挖空星星,if判断,因为每次我们只要打印边沿的星星就可以挖空
- { //当j等于1或者等于最大值i的时候我们才打印星星,其他用空格来表示
- System.out.print("* ");//当条件满足的时候我们打印星星
- }
- else
- {
- System.out.print(" ");//当不是第一次和最后一次的时候,我们让其输出空格
- }
- }
- System.out.println();//控制换行
- }
- }
- /*
- 打印菱形的下半部分
- -* * * *
- --* * * 下半部分
- ---* *
- ----*
- */
- public static void db()
- {
- for (int x=1;x<=4 ; x++)//外部循环控制函数,需求总共三行
- {
- //控制每行打印的空格数
- for (int y=0;y<x ;y++ )//每行的空格数是成1 2 3 4 的方式递增的,也就是按照外部循环行数x的方式等增的
- {
- System.out.print(" ");
- }
- for (int z=x;z<=4 ;z++ )//这个for循环是用来打印星号的输出,按照4 3 2 1 的方式输出.所以z这个初始时在逐步的递增
- {
- if (z==x||z==4)//判断打印的条件,当打印第一个和最后一个的时候,我们输出*,否则输出空格
- {
- System.out.print("* ");//输出一个星星
- }
- else
- {
- System.out.print(" ");//这边是2个空格,为什么?以为星星被空格替代,所以输出2个空格
- }
- }
- System.out.println();//控制换行
- }
- }
- }
复制代码 |
|