###### 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 = 取絕對值