for循环打印矩形 三角形 英文字符递增等腰三角形 菱形

矩形

/*              L   *
    *****       1   5   
    *****       2   5
    *****       3   5
    *****       4   5
    *****       5   5
*/
class Demo1 {
    public static void main(String[] args) {
    
        // 外层循环控制总行数
        int line = 20;
        for (int i = 1; i <= line; i++) {
            // 星星个数 = 最大行号
            for (int j = 1; j <= line; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
        
    }
}

三角形

/*              L  *
    *           1  1
    **          2  2
    ***         3  3 
    ****        4  4
    *****       5  5
    ******      6  6
*/
class Demo2 {
    public static void main(String[] args) {
        int line = 30;
        // 外层循环控制总计6行
        for (int i = 1; i <= line; i++) {
            // 每一行星星个数 == 行号
            for (int j = 1; j <= i; j++) {
                System.out.print('*');
            }
            
            System.out.println();
        }
    }
}

反三角

/*          L  _  *
        *   1  4  1
       **   2  3  2
      ***   3  2  3
     ****   4  1  4
    *****   5  0  5
            _下划线表示空格
            
            _ = 总行数 - 当前行号;
            * = 当前行号
*/
class Demo3 {
    public static void main(String[] args) {
        int line = 30;
        // 外层循环控制总行数
        for (int i = 1; i <= line; i++) {
            // 内层循环1: 控制空格的个数
            for (int j = 1; j <= line - i; j++) {
                System.out.print(' ');
            }
            
            // 内层循环2: 控制星星的个数
            for (int k = 1; k <= i; k++) {
                System.out.print('*');
            }
            
            System.out.println();
        }
    }
}

等腰三角

/*              L  _  *  
     *          1  5  1
    ***         2  4  3
   *****        3  3  5
  *******       4  2  7
 *********      5  1  9 
***********     6  0  11
                
                _ = 总行数 - 当前行号;
                * = 2 * 当前行号 - 1;
*/
class Demo4 {
    public static void main(String[] args) {
        int line = 20;
        // 外层循环控制总行数,这里是6行
        for (int i = 1; i <= line; i++) {
            // 内层循环1:控制空格的个数
            for (int j = 1; j <= line - i; j++) {
                System.out.print(' ');
            }
            
            // 内层循环2:控制星星的个数 星星 = 2 * 当前行号 - 1;
            for (int k = 1; k <= 2 * i - 1; k++) {
                System.out.print('*');
            }
            
            System.out.println();
        }
    }
}

英文字符递增等腰三角

/*              L  _  字符 个数
      A         1  6   A   1
     BBB        2  5   B   3
    CCCCC       3  4   C   5
   DDDDDDD      4  3   D   7
  EEEEEEEEE     5  2   E   9 
 FFFFFFFFFFF    6  1   F   11 
GGGGGGGGGGGGG   7  0   G   13
                _个数 = 总行数 - 当前行号;
                字符个数 = 2 * 当前行号 - 1;
                字符本身的递增过程
*/
class Demo5 {
    public static void main(String[] args) {
        // 定义一个字符变量,变量初始化为字符'A'
        char ch = 'A';
        
        // 外层循环控制总行数,总行数7行
        for (int i = 1; i <= 26; i++) {
            // 内存循环1: 控制空格的个数
            for (int j = 1; j <= 26 - i; j++) {
                System.out.print(' ');
            }
            
            // 内存循环2: 控制字符个数
            for (int k = 1; k <= 2 * i - 1; k++) {
                System.out.print(ch);
            }
            
            System.out.println();
            
            // 字符变量需要在每一次展会完毕之后,进行自增
            ch += 1;
        }
    }
}

菱形

/*              L  _  *
     *          1  5  1 
    ***         2  4  3
   *****        3  3  5
  *******       4  2  7
 *********      5  1  9
***********     6  0  11
​
 *********      1  1  9
  *******       2  2  7 
   *****        3  3  5
    ***         4  4  3
     *          5  5  1
     
                下半部分 第一行星星个数为9,如何计算得来
                凑!!!
                总行数5
                    5 * 2 - (i * 2 - 1) --> 5 * 2 - i * 2 + 1 => (5 - i) * 2 + 1
                    (5 - i) * 2 + 1
                    10 - 1 = 9;
                    10 - 3 = 7;
                    10 - 5 = 5;
*/
class Demo6 {
    public static void main(String[] args) {
        // 菱形总行数 ,一旦是单数
        int line = 25;
        
        // 图形一分为二,上半部分为line / 2 + 1行
        // 外层循环控制总行数,这里是line / 2 + 1行
        for (int i = 1; i <= line / 2 + 1; i++) {
            // 内层循环1:控制空格的个数
            for (int j = 1; j <= line / 2 + 1 - i; j++) {
                System.out.print(' ');
            }
            
            // 内层循环2:控制星星的个数 星星 = 2 * 当前行号 - 1;
            for (int k = 1; k <= 2 * i - 1; k++) {
                System.out.print('*');
            }
            
            System.out.println();
        }
        
        // 下半部分一共line / 2行
        // 外层循环控制总行数,总计line / 2行
        for (int i = 1; i <= line / 2; i++) {
            // 内层循环1: 展示空格个数
            for (int j = 1; j <= i; j++) {
                System.out.print(' ');
            }
            
            // 内层循环2: 控制星星的个数
            for (int k = 1; k <= (line / 2 - i) * 2 + 1; k++) {
                System.out.print('*');
            }
            
            System.out.println();
        }
    }
}

英文字符对称菱形

/*
     A
    BBB
   CCCCC
  DDDDDDD
 EEEEEEEEE
 
FFFFFFFFFFF
 EEEEEEEEE
  DDDDDDD
   CCCCC
    BBB
     A
*/
class Demo7 {
    public static void main(String[] args) {
        // 菱形总行数 ,一旦是单数
        int line = 11;
        char ch = 'A';
        
        // 图形一分为二,上半部分为line / 2 + 1行
        // 外层循环控制总行数,这里是line / 2 + 1行
        for (int i = 1; i <= line / 2; i++) {
            // 内层循环1:控制空格的个数
            for (int j = 1; j <= line / 2 + 1 - i; j++) {
                System.out.print(' ');
            }
            
            // 内层循环2:控制星星的个数 星星 = 2 * 当前行号 - 1;
            for (int k = 1; k <= 2 * i - 1; k++) {
                System.out.print(ch);
            }
            ch += 1;
            System.out.println();
        }
        
        // 下半部分一共line / 2行
        // 外层循环控制总行数,总计line / 2行
        for (int i = 1; i <= line / 2 + 1; i++) {
            // 内层循环1: 展示空格个数
            for (int j = 1; j <= i - 1; j++) {
                System.out.print(' ');
            }
            
            // 内层循环2: 控制星星的个数
            for (int k = 1; k <= (line / 2 + 1 - i) * 2 + 1; k++) {
                System.out.print(ch);
            }
            ch -= 1;
            
            System.out.println();
        }
    }
}


 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值