Java 写三角形 空心三角形 菱形 空心菱形

闲来无事,练习了一下Java基础中的循环语句。练习循环语句,当然少不了,用*打印出来三角形、空心三角形、菱形等这样的几何图形。

粗心大意,失误两次:

一、三角形

遇到一些小问题:

、金字塔

由于三角形和金字塔的代码差不多,只有少部分更改,图也可以看的很清楚。所以下面只写一部分代码好啦。

代码实例:

//作者:我
//功能:镂空金字塔
//时间:2018年1月10日

public class Hello{
        public static void main(String args[]){
                   //死去活来法
                    //int lay=4;
                    int lay=7;
                    for (int i=1;i<=lay;i++ )
                    {
                        //找出空格规律
                        //1->3 2->2 3->1 4->0
                        for(int k=1;k<=lay-i;k++)
                            {
                            System.out.print(" ");
                            }
                            //打印*
                            /*不正确的
                                for(int j=1;j<=i;j++){
                                System.out.print("*");
                                }*/
                            //打印*的规律
                            //1->1 2->3 3->5 ....
                            for(int j=1;j<=i*2-1;j++){
                                
                                if(i==1||i==lay){
                                //i代表层
                                System.out.print("*");
                                }else{
                                    //如果是第一个* 
                                    if(j==1||j==i*2-1){
                                       System.out.print("*");
                                    }else{
                                       System.out.print(" ");
                                    }

                                }
                            }
                            //打印换行
                                System.out.println();
                  }            
          }
}

三、菱形

菱形的代码是我在网上找的,看懂了逻辑。自己也玩了一下了,在hangshu取值为双数时,实心菱形一点bug。

代码实例:

//网上查找的代码
public class Hello3{
     public static void main(String args[]){
               int hangshu = 20;  
               int yiban = hangshu / 2 + 1;  
               int yibanduo = hangshu / 2; 
     
      
    System.out.println("实心菱形:");  
    for(int i = 1;i <= hangshu;i++){  
        if(i <= hangshu/2 + 1){  
            for(int k = 1;k <= hangshu/2 + 1- i;k++){  
                System.out.print(" ");  
            }  
            for(int k = 1;k <= i;k++){  
                System.out.print("* ");  
            }  
                System.out.println();  
        }else{  
            for(int k =1;k <= (i -(hangshu/2 + 1));k++){  
                System.out.print(" ");  
            }  
            for(int k = 1;k <= (2 *(hangshu/2 + 1) - i);k++){  
                System.out.print("* ");  
            }  
            System.out.println();  
        }     
    }

    System.out.println("空心菱形:");  
    for(int k = 1;k <= yiban;k++){  
        for(int i = 1;i <= (yiban - k);i++){  
            System.out.print(" ");  
        }  
        System.out.print("*");  
        for(int i = 1;i <= ( (k - 2) * 2 + 1);i++){  
            System.out.print(" ");  
        }  
        if(k != 1){  
            System.out.print("*");    
        }  
        System.out.println();  
    }  
    for(int k = yibanduo;k >=1;k--){  
        for(int i = 1;i <= (yiban - k);i++){  
            System.out.print(" ");  
        }  
        System.out.print("*");  
        for(int i = 1;i <= ( (k - 2) * 2 + 1);i++){  
            System.out.print(" ");  
        }  
        if(k != 1){  
            System.out.print("*");    
        }  
        System.out.println();  
    }   
  }
}
原文地址:https://www.cnblogs.com/1693977889zz/p/8261171.html