###### tags: `Java 學習筆記` # Java 學習筆記 - 2-5: 星狀圖 * 絕對值可以做出大到小小到大的效果 * 要反轉的話會有一個比較大的數字去減它 * 等差要變大的話要用乘法 * 可以搭配用輸入的數 ## 5 X 5 正方形 ```java= public class MainClass { public static void main(String[] args) { for (int i = 0; i < 5; i++) { for (int k = 0; k < 5; k++) { System.out.print("*"); } System.out.println(); } } } ``` ## 直角三角形 ```java= public class MainClass { public static void main(String[] args) { for (int i = 0; i < 5; i++) { for (int k = 0; k < i + 1; k++) { System.out.print("*"); } System.out.println(); } } } ``` ## 倒直角三角形 ```java= public class MainClass { public static void main(String[] args) { for (int i = 0; i < 5; i++) { for (int k = 0; k < 5 - i; k++) { System.out.print("*"); } System.out.println(); } } } ``` ## 平行四邊形 ```java= public class MainClass { public static void main(String[] args) { for (int i = 0; i < 5; i++) { for (int j = 0; j < 4 - i; j++) { System.out.print(" "); } for (int k = 0; k < 5; k++) { System.out.print("*"); } System.out.println(); } } } ``` ## 高為五的等腰三角形 ```java= public class MainClass { public static void main(String[] args) { for (int i = 0; i < 5; i++) { for (int j = 0; j < 4 - i; j++) { System.out.print(" "); } for (int k = 0; k < i * 2 +1; k++) { System.out.print("*"); } System.out.println(); } } } ``` ## 空心平行四邊形 ```java= public class MainClass { public static void main(String[] args) { for (int i = 0; i < 5; i++) { for (int j = 0; j < 4 - i; j++) { System.out.print(" "); } if (i == 0 || i == 4) { for (int k = 0; k < 5; k++) { System.out.print("*"); } } else { System.out.print("*"); for (int k = 0; k < 3; k++) { System.out.print(" "); } System.out.print("*"); } System.out.println(); } } } ``` ## 高為六的空心等腰三角形 ```java= public class MainClass { public static void main(String[] args) { for (int i = 0; i < 6; i++) { for (int j = 0; j < 5 - i; j++) { System.out.print(" "); } if (i == 0 || i == 5) { for (int k = 0; k < i * 2 + 1; k++) { System.out.print("*"); } } else { for (int k = 0; k < 1; k++) { System.out.print("*"); } for (int l = 2; l < i * 2 + 1; l++) { System.out.print(" "); } for (int m = 0; m < 1; m++) { System.out.print("*"); } } System.out.println(); } } } ``` Or ```java= public class MainClass { public static void main(String[] args) { for (int i = 0; i < 6; i++) { for (int k = 0; k < 5 - i; k++) { System.out.print(" "); } if (i >= 1 && i <= 4) { System.out.print("*"); for (int k = 0; k < i * 2 + 1; k++) { System.out.print(" "); } } else if (i == 0) { System.out.print("*"); } else { for (int k = 0; k < 6 * 2 - i; k++) { System.out.print("*"); } } System.out.println(); } } } ``` 結合兩者的優點 ```java= public class MainClass { public static void main(String[] args) { for (int i = 0; i < 6; i++) { for (int j = 0; j < 5 - i; j++) { System.out.print(" "); } if (i == 0 || i == 5) { for (int k = 0; k < i * 2 + 1; k++) { System.out.print("*"); } } else { System.out.print("*"); for (int k = 0; k < i * 2 - 1; k++) { System.out.print(" "); } System.out.print("*"); } System.out.println(); } } } ``` ## 高為五的菱形 ```java= public class MainClass { public static void main(String[] args) { for (int i = 0; i < 5; i++) { if (i >= 0 && i <= 2) { for (int j = 0; j < 2 - i; j++) { System.out.print(" "); } for (int k = 0; k < i * 2 +1; k++) { System.out.print("*"); } } else { for (int j = 0; j < i - 2; j++) { System.out.print(" "); } for (int k = 0; k < 9 - i * 2; k++) { System.out.print("*"); } } System.out.println(); } } } ``` Or ```java= public class MainClass { public static void main(String[] args) { for (int i = 0; i < 3; i++) { for (int k = 0; k < 2 - i; k++) { System.out.print(" "); } for (int k = 0; k < i * 2 + 1; k++) { System.out.print("*"); } System.out.println(); } for (int i = 0; i < 2; i++) { for (int k = 0; k < i + 1; k++) { System.out.print(" "); } for (int k = 0; k < 3 - i * 2; k++) { System.out.print("*"); } System.out.println(); } } } ``` Or 只用一個迴圈 ```java= public class MainClass { public static void main(String[] args) { for (int i = 0; i < 5; i++) { for (int k = 0; k < Math.abs(i - 2); k++) { System.out.print(" "); } for (int k = 0; k < 5 - Math.abs(i - 2) * 2; k++) { System.out.print("*"); } System.out.println(); } } } ``` Math.abs = 取絕對值