迴圈列印的把戲

来源:互联网 发布:qt网络编程数据接收 编辑:程序博客网 时间:2024/05/21 22:47

最近解了幾個迴圈列印的問題,想到以前寫的得意作品,就保存在這裡一份好了,想看結果就剪下貼上。
星星之一

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]);    }  }}

原创粉丝点击