最近解了幾個迴圈列印的問題,想到以前寫的得意作品,就保存在這裡一份好了,想看結果就剪下貼上。
星星之一
public class Star { public static void main(String[] args) { //改變這個值,可以改變星星大小 int max = 4; for (int i = 0; i < (4 * max - 3); i++) { if (i < (max - 1)) { printStar(max + i, i + 1, (3 * max - 3 - i) / 2); } else if (i < (2 * max - 1)) { printStar(max + i, 4 * max - 3 - i, (i - max + 1) / 2); } else if (i < (3 * max - 2)) { printStar(max + i, i + 1, (3 * max - 3 - i) / 2); } else { printStar(max + i, 4 * max - 3 - i, (i - max + 1) / 2); } } } private static void printStar(int level, int starCount, int spcCount) { if (level % 2 == 0) { System.out.print(" "); } for (int i = 0; i < spcCount; i++) { System.out.print(" "); } for (int i = 0; i < starCount; i++) { System.out.print("* "); } System.out.println(); } }星星之二
public class StarII { public static void main(String[] args) { // 改變這個值,可以改變星星大小 int max = 5; for (int i = 0; i < (4 * max - 3); i++) { if (i < (max - 1)) { printStarII(max + i, i + 1, (3 * max - 3 - i) / 2); } else if (i < (2 * max - 1)) { if (i == (max - 1)) { printStarIII(max + i, 4 * max - 3 - i, (i - max + 1) / 2, max - 2); } else { printStarII(max + i, 4 * max - 3 - i, (i - max + 1) / 2); } } else if (i < (3 * max - 2)) { if (i == (3 * max - 3)) { printStarIII(max + i, i + 1, (3 * max - 3 - i) / 2, max - 2); } else { printStarII(max + i, i + 1, (3 * max - 3 - i) / 2); } } else { printStarII(max + i, 4 * max - 3 - i, (i - max + 1) / 2); } } } private static void printStar(int level, int starCount, int spcCount) { if (level % 2 == 0) { System.out.print(" "); } for (int i = 0; i < spcCount; i++) { System.out.print(" "); } for (int i = 0; i < starCount; i++) { System.out.print("* "); } System.out.println(); } private static void printStarII(int level, int starCount, int spcCount) { if (level % 2 == 0) { System.out.print(" "); } for (int i = 0; i < spcCount; i++) { System.out.print(" "); } for (int i = 0; i < starCount; i++) { if (i == 0 || i == (starCount - 1)) { System.out.print("* "); } else { System.out.print(" "); } } System.out.println(); } private static void printStarIII(int level, int starCount, int spcCount, int midsp) { if (level % 2 == 0) { System.out.print(" "); } for (int i = 0; i < spcCount; i++) { System.out.print(" "); } if (midsp > 0) { for (int i = 0; i < (starCount - midsp) / 2; i++) { System.out.print("* "); } for (int i = 0; i < midsp; i++) { System.out.print(" "); } for (int i = 0; i < (starCount - midsp) / 2; i++) { System.out.print("* "); } } else { for (int i = 0; i < starCount; i++) { System.out.print("* "); } } System.out.println(); } }星星之三
public class StarIII { public static void main(String[] args) { int max = 7; int x = 4 * max - 3; int y = 6 * max - 5; char[][] starSpc = new char[x][y]; for (int i = 0; i < x; i++) { for (int j = 0; j < y; j++) { starSpc[i][j] = ' '; } } for (int i = 0; i 0) { starSpc[i][y / 2 - i] = '*'; starSpc[i][y / 2 + i] = '*'; } else if (y / 2 - i == 0) { for (int j = 0; j < y; j += 2) { starSpc[i][j] = '*'; } } } for (int i = max - 1; i < x; i++) { if (i == max - 1) { for (int j = 0; j < y; j += 2) { starSpc[i][j] = '*'; } } else { starSpc[i][i - max + 1] = '*'; starSpc[i][7 * max - 7 - i] = '*'; } } for (int i = 0; i < x; i++) { System.out.println(starSpc[i]); } } }