java在控制台輸出空心正方形,菱形,空心菱形


 使用for和if打印一個空心正方形
/*思路:要想打印一個5x5的空心正方形,首先它的第一橫行和最后一行都是填滿的,需要全部遍歷出來,第二三四行和只有左右兩條邊是出來的,中間部分為空的。因此在打印第二三四列的時候,需要再進行一下判斷,來確定打印空格。*/

    for (int x = 0;x<5 ;x++ )  //先確定是5行5列的正方形
        {
            if (x>0 && x<4)  //打印出中間空的情況
            {
                for (int z=0;z<5 ;z++ )  //打印豎的列
                {
                    if (z==0 | z==4) //第一和最后一列
                    {
                        System.out.print("* ");  //輸出“* ”
                    }else if(z>=1 && z<=4){  //中間三列
                        System.out.print("  ");//輸出“  ”
                    }
                    
                }

            }
            else if(x==0 | x==4){  //第一行和最后一行
                for (int y=0;y<5 ;y++ )
                {
                    System.out.print("* ");//全部都輸出“*”
                }
            }
            System.out.println("");//println做一個換行(print輸出的內容是不換行的)
        }

 

 

使用for循環打印一個菱形
/*
思路分析: 輸出一個菱形,可以拆分成兩部分進行思考,分成上下兩個三角形來進行輸出,那好了,如何輸出一個三角那,首先,三角形的是一個等腰三角形,而不是直角三角形,所以橫排除了遍歷“*”之外,還需要在其前邊添加若干空格把它擠過去 ,顯得比較好看,所以還得遍歷他前邊的空格。
*/

 1     for (int x = 0;x<10 ;x++ )//假設一共有10豎排
 2         {
 3             if (x<=5)//上半個三角形的情況
 4             {
 5                 for (int z =5-x;z>0 ;z-- )//前邊的空格是一個越來越少的三角形形態,所以定義為5-x
 6                 {
 7                     System.out.print(" ");
 8                 }
 9                 for (int y=0;y<x ;y++ )// 第一行一個“*”,第二行2個“*”,可以得出列數是和行數相等的,故定義y<x;
10                 {
11                     System.out.print("* ");//此時輸出“* ”;
12                 }
13             }else//這是下半個三角形的情況
14             {
15                 for (int z =0;z<x-5 ;z++ )  //此時前邊空格形態是上少下多,正好為x-5;
16                 {
17                     System.out.print(" ");
18                 }
19                 for (int y=10-x;y>0 ;y-- )//上寬下窄,所以遍歷“*”為10-x;
20                 {
21                     System.out.print("* ");
22                 }                
23             }
24             System.out.println("");
25         }

 

 


使用for循環打印一個空心菱形
/* 思路分析:輸出一個空心菱形,需要拆分成三部分進行思考,分成上下兩個三角形來進行輸出,那好了,如何輸出一個三角那,首先,三角形的是一個等腰三角形,而不是直角三角形,所以橫排除了遍歷中間的菱形部分之外,還需要在其前邊添加若干空格把它擠過去 ,顯得比較好看,所以還得遍歷他前邊的空格。中間的空格也需要進行單獨遍歷,而“*”做的框,只需要把確定的值確定出來,讓它輸出“*”,即可!
*/

    for (int x = 0;x<10 ;x++ )//假設一共有10豎排
        {
            if (x<=5)//上半個三角形的情況
            {
                for (int z =5-x;z>0 ;z-- )//前邊的空格是一個越來越少的三角形形態,所以定義為5-x
                {
                    System.out.print(" ");
                }
                for (int y=0;y<x ;y++ )//這里了開始就進入正題了,
                {
                    if (y==0 | y==x-1) //這是兩邊的框, 此時輸出“* ”
                    {
                        System.out.print("* ");
                    }else{//中間剩下的部分輸出空格
                        System.out.print("  ");
                    }
                }
            }else{                
                for (int z =0;z<x-5 ;z++ ) //此時前邊空格形態是上少下多,正好為x-5;
                {
                    System.out.print(" ");// 不多說,先把空格懟進去
                }
                for (int y=10-x;y>0 ;y-- )// 10-x為有幾列
                {
                    if (y==1 | y==10-x ) //第一列和10-x(最后一列)輸出“*”做一個框出來
                    {
                        System.out.print("* ");
                    }else{  //中間部分輸出空格
                        System.out.print("  ");
                    }
                }            
            }
            System.out.println("");
        }

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM