Java基础 - 练习(二)打印菱形

Java基础练习

打印菱形,先上代码:

java 复制代码
// 方法一:基础,好理解
public static void diamond() {
    //控制行数
    for (int i = 1; i <= 4; i++) {
        //空格的个数
        for (int k = 1; k <= 4 - i; k++) {
            System.out.print(" ");
        }
        //控制星星个数的时候和行有关
        for (int j = 1; j <= 2 * i - 1; j++) {
            System.out.print("*");
        }
        System.out.println();
    }
    //控制行数
    for (int i = 3; i >= 1; i--) {
        //空格的个数
        for (int k = 1; k <= 4 - i; k++) {
            System.out.print(" ");
        }
        //控制星星个数的时候和行有关
        for (int j = 1; j <= 2 * i - 1; j++) {
            System.out.print("*");
        }
        System.out.println();
    }
}

思路:

  1. 打印菱形可以将菱形看作两个等腰三角形,第一个正着放,第二个倒着放,两个等腰三角形共用同一条底边
  2. 先打印第一个正着放的等腰三角形,设置4行,使用for循环嵌套
  3. 再打印倒着放的等腰三角形,因为底边共用,所以此处打印时比正放的时候少一行,打印3行
效果图

------------------------------------------------分割线------------------------------------------------

java 复制代码
// 方法二:简便
public static void diamond_1() {
    for (int i = -4; i < 4; i++) {
        for (int j = 0; j <= Math.abs(i); j++) {
            System.out.print(" ");
        }
        for (int j = 1; j <= 8 - (Math.abs(i) * 2 + 1); j++) {
            System.out.print("*");
        }
        System.out.println();
    }
}

此处使用了Math.abs(i)方法,用于取当前数i的绝对值

相关推荐
customer0840 分钟前
【开源免费】基于SpringBoot+Vue.JS校园社团信息管理系统(JAVA毕业设计)
java·vue.js·spring boot·后端·spring cloud·java-ee·开源
humors22143 分钟前
java实现excel导入参考资料合集
java·前端·后端·wps·导出·导入·office
篱笆院的狗1 小时前
1、Java中的序列化和反序列化是什么?
java·开发语言
等一场春雨1 小时前
Spring Boot 3 文件上传、多文件上传、大文件分片上传、文件流处理以及批量操作
java·spring boot·后端
骑着王八撵玉兔2 小时前
【非关系型数据库Redis 】 入门
java·数据库·spring boot·redis·后端·缓存·nosql
小七蒙恩2 小时前
java 上传txt json等类型文件解析后返回给前端
java·前端·json
懒大王爱吃狼2 小时前
Python 向量检索库Faiss使用
开发语言·python·自动化·python基础·python教程
郭老师的小迷弟雅思莫了3 小时前
【JAVA高级篇教学】第六篇:Springboot实现WebSocket
java·spring boot·websocket
阳光开朗_大男孩儿4 小时前
QT_BEGIN_NAMESPACE 和 QT_END_NAMESPACE(一)
开发语言·数据库·qt
神仙别闹4 小时前
基于Java+MySQL实现的(GUI)酒店管理系统(软件工程设计)
java·mysql·软件工程