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的绝对值

相关推荐
我是坏垠5 分钟前
Crypto、Cipher与Password:Java加密开发的三个核心概念
java·开发语言·python
white_ant24 分钟前
JDK LTS 版本升级迁移注意事项大全
java·开发语言
Bobolink_35 分钟前
跨境业务网络环境评估,“干净、一致、独享”三个关键指标
开发语言·网络·php·跨境网络·网络环境
你怎么知道我是队长41 分钟前
JavaScript的变量和数据类型介绍
开发语言·javascript·ecmascript
xingke1 小时前
C 语言多文件编程:(一)头文件、extern、编译链接
c语言·开发语言·多文件
戮漠summer2 小时前
Missing Semester 计算机教育中缺失的一课 Lecture 01 Shell
开发语言·后端·scala
jinyishu_2 小时前
C++ string使用方法
开发语言·c++
EW Frontier2 小时前
三级跳突破864维动作空间——QMIX-Hierarchical多无人机协同通信方法全解析【附python代码】
开发语言·python·无人机·强化学习·通信资源分配
名字还没想好☜2 小时前
Next.js 中间件实战:鉴权、重定向与 A/B 分流
开发语言·前端·javascript·中间件·react·next.js
广州灵眸科技有限公司2 小时前
瑞芯微RV1126B开发板(EASY-EAI-PI2) INI文件操作
java·前端·javascript·网络·人工智能