for迴圈輸出菱形的形狀【java】
阿新 • • 發佈:2019-02-18
使用for迴圈語句輸出以下“菱形”效果:
*
***
*****
*******
*********
*******
*****
***
*
程式碼:
/* * *** ***** ******* ********* ******* ***** *** * 分析: - 上層(共5層) 每層構成:每層每層空格數+每層星星數 第1層 -- 空格數:4 + 星星數:1 第2層 -- 空格數:3 + 星星數:3 第3層 -- 空格數:2 + 星星數:5 第4層 -- 空格數:1 + 星星數:7 第5層 -- 空格數:0 + 星星數:9 分析: 第1層 -- 空格數:4(= 5-1) + 星星數:1(= 2*1-1) 第2層 -- 空格數:3(= 5-2) + 星星數:3(= 2*2-1) 第3層 -- 空格數:2(= 5-3) + 星星數:5(= 2*3-1) 第4層 -- 空格數:1(= 5-4) + 星星數:7(= 2*4-1) 第5層 -- 空格數:0(= 5-5) + 星星數:9(= 2*5-1) 推理:(上層共 layer 層) 第i層 -- (空格數 = layer-i) + (星星數 = 2*i-1) - 下層(下層共 layer-1 層) 第1層 -- 空格數:1 + 星星數:7 第2層 -- 空格數:2 + 星星數:5 第3層 -- 空格數:3 + 星星數:3 第4層 -- 空格數:4 + 星星數:1 分析:效果等效(共4層) 下層的第1層對應上層的第4層 -- 空格數:1 + 星星數:7 下層的第2層對應上層的第3層 -- 空格數:2 + 星星數:5 下層的第3層對應上層的第2層 -- 空格數:3 + 星星數:3 下層的第4層對應上層的第1層 -- 空格數:4 + 星星數:1 推理: 第i層 -- (空格數 = i) + (星星數 = 2*(layer-i)-1) */ public class StarTree { public static void main(String[] args){ int layer = 5; // 一、上層(顯示 layer 行) for(int i=1;i<=layer;i++){ // 1、獲取空格需要顯示數量 int spaceNum = layer-i; for(int j=1;j<=spaceNum;j++){ // 需要列印空格的數量 System.out.print(" "); } // 2、獲取星星需要顯示的數量 int starNum = 2*i-1; for(int j=1;j<=starNum;j++){ // 需要列印星星的數量 System.out.print("*"); } // 3、換行 System.out.println(); } // 二、下層(顯示 layer-1 行) for(int i=1;i<layer;i++){ // 1、獲取空格需要顯示數量 int spaceNum = i; for(int j=1;j<=spaceNum;j++){ System.out.print(" "); } // 2、獲取星星需要顯示的數量 int starNum = 2*(layer-i)-1; for(int j=1;j<=starNum;j++){ System.out.print("*"); } // 3、換行 System.out.println(); } } }
程式碼結果顯示: