输入矩形

以此矩形案例(4行,9列的矩形)为例

public static void main(String[] args) {        //输入矩形        for (int i = 1; i <= 4; i++) {//管制行,即4行            for (int j = 1; j <= 9; j++) {//管制输入的*的个数,每行9个                System.out.print("*");            }            //换行            System.out.println();        }    }//输入后果************************************

后面有空格的矩形

以此矩形案例(4行,9列的矩形)为例

public static void main(String[] args) {        //输入后面有空格矩形        for (int i = 1; i <= 4; i++) {//管制行,即4行            //输入空格            for (int k = 1; k <= 5; k++) {//管制空格,即每行开始输入5个空格                System.out.print(" ");            }            for (int j = 1; j <= 9; j++) {//管制输入的*的个数,每行9个                System.out.print("*");            }            //换行            System.out.println();        }    }//输入后果     *********     *********     *********     *********

输入平行四边形

以此矩形案例(4行,9列的矩形)为例,要变成平行四边形

  • 第一行后面输入8个空格
  • 第二行后面输入7个空格
  • 第三行后面输入6个空格
  • 第四行后面输入5个空格
        ********* 1 8       ********* 2 7      ********* 3 6     ********* 4 5

综上所述,得出法则:行数+空格数=9

public static void main(String[] args) {        //输入平行四边形        for (int i = 1; i <= 4; i++) {//管制行,即4行            //输入空格            for (int k = 1; k <= 9 - i; k++) {//管制空格,行数+空格数=9,即每行开始输入9-i个空格                System.out.print(" ");            }            for (int j = 1; j <= 5; j++) {//管制输入的*的个数,每行5个                System.out.print("*");            }            //换行            System.out.println();        }    }//输入后果:        *****       *****      *****     *****

输入三角形

以此案例(4行)为例,要变成三角形

  • 第一行后面输入8个空格,1个星
  • 第二行后面输入7个空格,3个星
  • 第三行后面输入6个空格,5个星
  • 第四行后面输入5个空格,7个星
        * 1 8 1       *** 2 7 3      ***** 3 6 5     ******* 4 5 7

综上所述,得出法则:行数+空格数=9,2x行数-1=星的个数

public static void main(String[] args) {        //输入三角形        for (int i = 1; i <= 4; i++) {//管制行,即4行            //输入空格            for (int k = 1; k <= 9 - i; k++) {//管制空格,行数+空格数=9,即每行开始输入9-i个空格                System.out.print(" ");            }            for (int j = 1; j <= 2 * i - 1; j++) {//管制输入的*的个数,2x行数-1=星的个数,即每行2 * i -1个星                System.out.print("*");            }            //换行            System.out.println();        }    }//输入后果:        *       ***      *****     *******

输入菱形

此案例由下面三角形(4行)和上面倒三角形(3行)组合,变成菱形

下面三角形

  • 第一行后面输入8个空格,1个星
  • 第二行后面输入7个空格,3个星
  • 第三行后面输入6个空格,5个星
  • 第四行后面输入5个空格,7个星

上面倒三角形

  • 第一行后面输入6个空格,5个星
  • 第二行后面输入7个空格,3个星
  • 第三行后面输入8个空格,1个星

          * 1 8 1     *** 2 7 3    ***** 3 6 5   ******* 4 5 7    *****   1 6 5     ***     2 7 3      *       3 8 1

综上所述,得出法则:下面三角形,行数+空格数=9,2x行数-1=星的个数;上面倒三角形,行数+5=空格数,7-2x行数=星的个数

public static void main(String[] args) {        //输入下面三角形        for (int i = 1; i <= 4; i++) {//管制行,即4行            //输入空格            for (int k = 1; k <= 9 - i; k++) {//管制空格,行数+空格数=9,即每行开始输入9-i个空格                System.out.print(" ");            }            for (int j = 1; j <= 2 * i - 1; j++) {//管制输入的*的个数,2x行数-1=星的个数,即每行2 * i -1个星                System.out.print("*");            }            //换行            System.out.println();        }        //输入上面倒三角形        for (int i = 1; i <= 3; i++) {//管制行,即3行            //输入空格            for (int k = 1; k <= i + 5; k++) {//管制空格,行数+5=空格数,即每行开始输入i+5个空格                System.out.print(" ");            }            for (int j = 1; j <= 7 - 2 * i; j++) {//管制输入的*的个数,7-2x行数=星的个数,即每行7 - 2 * i个星                System.out.print("*");            }            //换行            System.out.println();        }    }//输入后果:        *       ***      *****     *******      *****       ***        *

输入空心菱形

此案例由下面三角形(4行)和上面倒三角形(3行)组合,变成菱形,两头星形由空格代替

        *        * *       *   *      *     *       *   *          * *             *       

得出法则:在输入星的中央,每行第一个和最初一个输入星,其余输入空格

 public static void main(String[] args) {        //输入下面三角形        for (int i = 1; i <= 4; i++) {//管制行,即4行            //输入空格            for (int k = 1; k <= 9 - i; k++) {//管制空格,行数+空格数=9,即每行开始输入9-i个空格                System.out.print(" ");            }            for (int j = 1; j <= 2 * i - 1; j++) {//管制输入的*的个数,2x行数-1=星的个数,即每行2 * i -1个星                //在首和尾输入星,其余输入空格                if (j == 1 || j == 2 * i - 1) {                    System.out.print("*");                } else {                    System.out.print(" ");                }            }            //换行            System.out.println();        }        //输入上面倒三角形        for (int i = 1; i <= 3; i++) {//管制行,即3行            //输入空格            for (int k = 1; k <= i + 5; k++) {//管制空格,行数+5=空格数,即每行开始输入i+5个空格                System.out.print(" ");            }            for (int j = 1; j <= 7 - 2 * i; j++) {//管制输入的*的个数,7-2x行数=星的个数,即每行7 - 2 * i个星                //在首和尾输入星,其余输入空格                if (j == 1 || j == 7 - 2 * i) {                    System.out.print("*");                } else {                    System.out.print(" ");                }            }            //换行            System.out.println();        }    }//输入后果:        *       * *      *   *     *     *      *   *       * *        *

输入正方形

以此案例(5行,5列的正方形)为例

public static void main(String[] args) {        //输入正方形        int len = 5;//正方形边长        for (int i = 1; i <= len; i++) {//管制行,即4行            for (int j = 1; j <= len; j++) {//输入星,即每行输入j个星                System.out.print("*");            }            //换行            System.out.println();        }    }//输入后果:*************************

输入实心菱形

以此案例(5行,5列)为例

  • 第一行第一个和最初一个星的地位是3和3
  • 第二行第一个和最初一个星的地位是2和4
  • 第三行第一个和最初一个星的地位是1和5
  • 第四行第一个和最初一个星的地位是2和4
  • 第五行第一个和最初一个星的地位是3和3
  *  1 3 3 ***  2 2 4*****  3 1 5 ***    4 2 4   *      5 3 3 
public static void main(String[] args) {        //输入实心菱形        int len = 5;//边长        int first = len / 2 + 1;//开始输入星的地位        int end = len / 2 + 1;//完结输入星的地位        boolean flag = true;//如果是上半部三角形则是true,如果是下半倒三角形则是false        for (int i = 1; i <= len; i++) {//管制行,即4行            for (int j = 1; j <= len; j++) {//输入星,即每行输入j个星                if (j >= first && j <= end) {//在每行的起始至完结地位输入星                    System.out.print("*");                } else {                    System.out.print(" ");                }            }            //换行            System.out.println();            if(end == len){//最初一个星地位是边长宽度                flag = false;//下一行,马上执行下半部倒三角形            }            if(flag){                //在上半三角形,开始输入星的地位first前移1,完结输入星的地位end后移1                first--;                end++;            }else {                //在下半倒三角形,开始输入星的地位first后移1,完结输入星的地位end前移1                first++;                end--;            }        }    }//输入后果:  *   *** ***** ***   *  

如果想输入空心菱形则只须要将:

if (j >= first && j <= end)

改成

if (j == first || j == end)