·Java实现爱心图案

  • 爱心图案实现代码

代码

public class HeartPattern {

    public static void main(String[] args) {

        int size = 10; // 控制爱心的大小

        

        // 打印爱心上半部分

        for (int i = size / 2; i <= size; i += 2) {

            // 打印左边空格

            for (int j = 1; j < size - i; j += 2) {

                System.out.print(" ");

            }

            

            // 打印左边爱心

            for (int j = 1; j <= i; j++) {

                System.out.print("*");

            }

            

            // 打印中间空格

            for (int j = 1; j <= size - i; j++) {

                System.out.print(" ");

            }

            

            // 打印右边爱心

            for (int j = 1; j <= i; j++) {

                System.out.print("*");

            }

            

            System.out.println();

        }

        

        // 打印爱心下半部分

        for (int i = size; i >= 1; i--) {

            // 打印左边空格

            for (int j = i; j < size; j++) {

                System.out.print(" ");

            }

            

            // 打印爱心底部

            for (int j = 1; j <= (i * 2) - 1; j++) {

                System.out.print("*");

            }

            

            System.out.println();

        }

    }

}

 

  •  知识点讲解

 

1. 嵌套循环结构

- 外层循环控制行数

- 内层循环控制每行的字符打印

 

for (int i = size / 2; i <= size; i += 2) {

    for (int j = 1; j < size - i; j += 2) {

        System.out.print(" ");

    }

    // ...

}

 

2. 数学关系计算

- 使用数学关系确定爱心形状的边界

- 通过变量`i`和`j`的关系控制星号(*)和空格的位置

 

 3. 对称性处理

- 爱心是对称图形,代码中左右两部分对称处理

//左边爱心

for (int j = 1; j <= i; j++) {

    System.out.print("*");

}

 

// 中间空格

for (int j = 1; j <= size - i; j++) {

    System.out.print(" ");

}

 

// 右边爱心

for (int j = 1; j <= i; j++) {

    System.out.print("*");

}

```

 

4. 分步打印

- 将爱心分为上下两部分分别打印

- 上半部分形成爱心的两个半圆

- 下半部分形成爱心的尖角

 

5. 控制台输出

- 使用`System.out.print()`和`System.out.println()`控制输出

- `print()`不换行,`println()`换行

 

代码优化版(增加颜色和动态大小)

 

```java

public class ColoredHeart {

    public static void main(String[] args) {

        // ANSI颜色代码

        final String RED = "\u001B[31m";

        final String RESET = "\u001B[0m";

        

        // 动态调整爱心大小

        for (int size = 6; size <= 10; size += 2) {

            System.out.println("\n大小 " + size + " 的爱心:");

            

            // 上半部分

            for (int i = size / 2; i <= size; i += 2) {

                for (int j = 1; j < size - i; j += 2) {

                    System.out.print(" ");

                }

                

                for (int j = 1; j <= i; j++) {

                    System.out.print(RED + "*" + RESET);

                }

                

                for (int j = 1; j <= size - i; j++) {

                    System.out.print(" ");

                }

                

                for (int j = 1; j <= i; j++) {

                    System.out.print(RED + "*" + RESET);

                }

                

                System.out.println();

            }

            

            // 下半部分

            for (int i = size; i >= 1; i--) {

                for (int j = i; j < size; j++) {

                    System.out.print(" ");

                }

                

                for (int j = 1; j <= (i * 2) - 1; j++) {

                    System.out.print(RED + "*" + RESET);

                }

                

                System.out.println();

            }

        }

    }

}

 

 

知识点

 

1. ANSI颜色代码

- 使用ANSI转义序列改变控制台文本颜色

- `\u001B[31m`设置为红色

- `\u001B[0m`重置颜色

 

 2. 动态大小调整

- 使用外层循环生成不同大小的爱心

- 演示了如何通过改变一个参数影响整个图形

 

3. 常量使用

- 使用`final`定义颜色常量,提高代码可读性

 

 练习建议

 

1. 尝试修改代码生成不同形状的图案

2. 添加更多颜色变化

3. 实现一个方法,接收大小参数返回爱心字符串

4. 尝试用其他字符(如❤️)代替星号

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值