Java for 循环打印直角三角形、等腰三角形、菱形等

class Work2 {
    public static void main(String[] args) {
    //输出直角三角形
        for (int i = 1; i <=5; i++) {
            for (int j = 1; j <=i; j++) {
                System.out.print("*");
            }
            System.out.println(" ");
        }
        
        //输出正三角形
        for (int m = 1; m <=5; m++) {   //这个三角形一共有5行
            for (int i = 1; i <= (5-m); i++) {  //控制每行的空格数
                System.out.print(" ");
            }
            for (int j = 1;j <= 2 * m -1;j++) {  //控制每行的*的个数
                System.out.print("*");
            }
            System.out.println(" "); //输出空格和*号后换行
        }
        
        //输出菱形的*
        for (int m = 1; m <=5; m++) {   //上半个三角形一共有5行
            for (int i = 1; i <= (5-m); i++) {  //控制每行的空格数
                System.out.print(" ");
            }
            for (int j = 1;j <= 2 * m -1;j++) {  //控制每行的*的个数
                System.out.print("*");
            }
            System.out.println(" "); //输出空格和*号后换行
        }
        for (int m = 1; m <=4; m++) {//下面的三角形是4行
            for (int i = 1; i <=m ; i++) {  //控制每行的空格数
                System.out.print(" ");
            }
            for (int j = 1;j <= 2 * (4-m) +1;j++) {  //控制每行的*的个数
                System.out.print("*");
            }
            System.out.println(" "); //输出空格和*号后换行
        }
        
            /* A
              ABA
             ABCBA
            ABCDCBA
           ABCDEDCBA
            ABCDCBA
             ABCBA
              ABA
               A*/
        for (int m = 1; m <= 5; m++ ) { //表示上面一共是5行
            for (int i = 1;i <= (5-m); i++) {  //每行输出的空格
                System.out.print(" ");
            }
            for (int j = 1; j <= m; j++) { //每行输出的字母
                System.out.print((char) ('A' + j-1));
            }
            for (int k = m -1; k > 0; k--) {
                System.out.print((char) ('A' + k-1));
            }
            System.out.println(" ");
        }
         for (int m = 1; m <= 4; m++ ) { //表示下面一共是4行
            for (int i = 1;i <= m; i++) {  //每行输出的空格
                System.out.print(" ");
            }
            for (int j = 0; j <= (4-m); j++) { //每行输出的字母
                System.out.print((char) ('A' + j ));
            }
            for (int k = 4 - m; k > 0; k--) {
                System.out.print((char) ('A' + k-1));
            }
            System.out.println(" ");
        }
        //13
        for(int i = 0;i < 5;i++){    //i表示空心菱形上半部分行数;类似于金字塔行数
            for (int j = 0;j < (5-1-i);j++) {//j控制每行"*"前面的空格数
                System.out.print("#");
            }
            for (int k = 0;k < (2*i+1);k++) {    //k控制要打印的"*"的个数
                if (i == 0){//如果是第一行则将"*"全部打印
                    System.out.print("*");
                }else if(k == 0||k == (2*i)){//如果要打印的"*"是第一个或最后一个则                                    //打印出来
                    System.out.print("*");
                }else{//如果要打印的"*"不是第一个或最后一个则打印空格
                    System.out.print("#");
                }
            }
            for (int j = 0;j < (5-1-i);j++) {//j控制每行"*"前面的空格数
                System.out.print("#");
            }
            System.out.println();
        }
        for(int i = 0;i < 4;i++){    //空心菱形的下半部分的行数比上半部分少一行;比如上                            //半部分是5行,下半部分为4行才能构成菱形
            for(int j = 0;j < (i+1);j++){//j控制每行"*"前面的空格数
                System.out.print("#");
            }
            for(int k = 0;k < 2*(4-i)-1;k++){    //k控制要打印的"*"的个数
                if(i == 3){//如果是最后一行则将"*"全部打印
                    System.out.print("*");
                }else if(k == 0||k == 2*(3-i)){//如果要打印的"*"是第一个或最后一个                                      //则打印出来
                    System.out.print("*");
                }else{//如果要打印的"*"不是第一个或最后一个则打印空格
                    System.out.print("#");
                }
            }
            for(int j = 0;j < (i+1);j++){//j控制每行"*"前面的空格数
                System.out.print("#");
            }
            System.out.println();
        }
    }        
    
}

你可能感兴趣的:(Java for 循环打印直角三角形、等腰三角形、菱形等)