首页 > 代码库 > Java----输出图形(菱形、三角形)

Java----输出图形(菱形、三角形)

!输出一个空心三角形

(1)空格的输出按-1递减,字符的输出按等差数列,公差为2

(2)判断第一行和最后一行照常输出

(3)中间行仅输出两个字符

public class kongjin {
    public static void main(String []args)
    {
        int lay;
        lay = 4;
        for(int i = 1; i <= lay; i++)//控制打印的行数
        {
            for(int a=0; a < lay-i; a ++ )
            {
                System.out.print(" ");//打印空格
            }
            for(int b = 1; b <= i*2-1; b ++)
            {
                if(i == 1||i == lay)//判断是否是第一或最后一行
                {
                    System.out.print("*");
                }
                else
                {
                    if(b == 1||b == i*2-1)//判断是否是本行第一个或最后一个字符
                    {
                        System.out.print("*");
                    }
                    else
                    {
                        System.out.print(" ");
                    }
                    
                }
            }
            System.out.println();//输出回车
        }
    }
}

输出为

技术分享

 

!!输出一个菱形

(1)将菱形分为两部分

(2)输出第一部分,原理与三角形输出相似

(3)倒序输出第二部分,参见代码

public class ling {
    public static void main (String[]args)
    {
        int lay;
        lay = 7;//菱形的总长度
        for(int m = 1; m <=(lay+1)/2; m++)//正序输出上半部分
        {
            for(int b = 1; b <=(lay+1)/2-m ; b++)//输出空格
            {
                System.out.print(" ");
            }
            for(int c = 1; c <= m*2-1; c++)
            {
                System.out.print("*");    
            }
            System.out.println();//换行
        }
        for(int d =(lay+1)/2-1;d >= 1; d --)//倒序输出下半部分
        {
            for(int b = 1; b <= (lay+1)/2-d; b++)//输出空格
            {
                System.out.print(" ");
            }
            for(int c = (lay+1)/2-d; c <=(lay+1)/2-2+d; c ++)//(lay+1)/2-1即为下半个三角形
            {
                System.out.print("*");    
            }
            System.out.println();
        }
        
    }
}
 

输出为

技术分享

 

Java----输出图形(菱形、三角形)