【使用Java循环输出菱形,空心金字塔】

ops/2024/10/17 15:28:11/

使用Java循环输出图形的探索之旅

在这里插入图片描述

在这篇博客中,我们将探讨如何使用Java中的循环结构来输出各种几何图形,特别是金字塔和菱形。通过这一过程,不仅能够加深对循环的理解,还能提升编程能力。

1. 打印矩形

首先,我们从最简单的图形开始,矩形。我们使用嵌套循环来控制行和列的输出。

java">public class Stars {public static void main(String[] args) {// 外层循环控制行数for (int i = 1; i <= 5; i++) {// 内层循环控制每行的列数for (int j = 1; j <= 5; j++) {System.out.print("*"); // 打印星号}System.out.print("\n"); // 换行}}
}

输出:

*****
*****
*****
*****
*****

2. 打印半个金字塔

接下来,我们将打印半个金字塔。这里的外层循环控制行数,而内层循环控制每行的星号数量。

java">public class Stars {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.print("\n"); // 换行}}
}

输出:

*
**
***
****
*****

3. 打印倒三角形

我们还可以打印倒三角形,通过调整循环的条件来实现。

java">public class Stars {public static void main(String[] args) {// 外层循环控制行数,从5开始递减for (int i = 5; i > 0; i--) {// 内层循环控制每行的星号数量for (int j = 1; j <= i; j++) {System.out.print("*"); // 打印星号}System.out.print("\n"); // 换行}}
}

输出:

*****
****
***
**
*

4. 打印金字塔

4.1 不带空格的金字塔

现在我们来打印一个完整的金字塔。首先,不带空格的金字塔。

java">public class Stars {public static void main(String[] args) {// 外层循环控制行数for (int i = 1; i <= 5; i++) {// 内层循环控制每行的星号数量for (int j = 1; j <= 2 * i - 1; j++) {System.out.print("*"); // 打印星号}System.out.print("\n"); // 换行}}
}

输出:

*
***
*****
*******
*********
4.2 带空格的金字塔

接着,我们加入空格,使金字塔更美观。

java">public class Stars {public static void main(String[] args) {int totalLevel = 5; // 总层数// 外层循环控制行数for (int i = 1; i <= totalLevel; i++) {// 打印前置空格for (int k = 1; k <= totalLevel - i; k++) {System.out.print(" "); // 打印空格}// 打印星号for (int j = 1; j <= 2 * i - 1; j++) {System.out.print("*"); // 打印星号}System.out.print("\n"); // 换行}}
}

输出:

    ****************
*********

5. 打印空心金字塔

为了实现空心金字塔,我们需要对金字塔的星号输出进行改进。

java">public class Stars {public static void main(String[] args) {int totalLevel = 5; // 总层数// 外层循环控制行数for (int i = 1; i <= totalLevel; i++) {// 打印前置空格for (int k = 1; k <= totalLevel - i; k++) {System.out.print(" "); // 打印空格}// 打印星号for (int j = 1; j <= 2 * i - 1; j++) {// 打印空心部分if (j == 1 || j == (2 * i - 1) || i == totalLevel) {System.out.print("*"); // 打印边缘星号} else {System.out.print(" "); // 打印空格}}System.out.println(); // 换行}}
}

输出:

    ** **   **     *
*********

5.2 准备输出一个菱形

准备输出一个菱形, 空心金字塔已经是上半部分了,接下列完成下半部分即可

java">    //把 5 做成一个变量,进行更好的控制   int totalLevel = 5;public class Starts{public static void main(String[] args){int totalLevel = 9;  // 控制图形的层数//输出上半部分for(int i = 1; i <= totalLevel;i++){  //i 表示层数// //在输出* 之前,还要输出空格 对应空格等于 总层数 - 当前层for(int k =1; k <= totalLevel-i ; k++){System.out.print(" ");}//控制打印每层的*个数	for (int j = 1; j <= 2 * i - 1;  j++ ){//当前行的第一个位置是* ,最后一个位置也是*if(j == 1 || j == (2*i -1)  ){System.out.print("*");}else{System.out.print(" ");}}//这里的println 会自动换行System.out.println("");}//输出下半部分for(int i = totalLevel - 1; i > 0; i--){//控制下半部分的层数 依次递减for (int j = 1; j <= 2*i-1; j++){    //每层输出的* 个数System.out.print("*");}//这里的println 会自动换行System.out.println("");}}}
*
* *
*   *
*     *
*       *
*         *
*           *
*             *
*               *
***************
*************
***********
*********
*******
*****
***
*

6. 打印空心菱形

最后,我们扩展到空心菱形。我们将分为两个部分:上半部分和下半部分。

java">public class Starts{public static void main(String[] args){int totalLevel = 8;  // 控制图形的层数//输出上半部分for(int i = 1; i <= totalLevel;i++){  //i 表示层数//在输出* 之前,还要输出空格 对应空格等于 总层数 - 当前层for(int k =1; k <= totalLevel-i ; k++){System.out.print(" ");}//控制打印每层的*个数	for (int j = 1; j <= 2 * i - 1;  j++ ){//当前行的第一个位置是* ,最后一个位置也是*if(j == 1 || j == (2*i -1)  ){System.out.print("*");}else{System.out.print(" ");}}//这里的println 会自动换行System.out.println("");}//输出下半部分for(int i = totalLevel - 1; i > 0; i--){//控制下半部分的层数//控制空格的输出for(int k = 1; k <= totalLevel - i;  k++ ){  //空格数量 等于 总行数 - 层数   k < totalLevel - i; k = 1 ; 不成立所以不会输出第四行的空格System.out.print(" ");}//每层输出的* 个数	for (int j = 1; j <= 2 * i - 1; j++){   if(j == 1 || j == 2 * i - 1 ){System.out.print("*");}else {System.out.print(" ");}}//这里的println 会自动换行System.out.println("");}}
}

输出:

       ** **   **     **       **         **           *
*             **           **         **       **     **   ** **

总结

通过这篇博客,我们深入探讨了使用Java循环输出各种图形的方法。掌握这些基本技巧不仅能提升我们的编程能力,还能为后续更复杂的编程挑战打下坚实的基础。希望你们能在实践中继续探索和创造出更多有趣的图形!


http://www.ppmy.cn/ops/124286.html

相关文章

UE5.3.2查看引擎真正版本

编译好的插件给别人用&#xff0c;发现引擎不一致&#xff0c;而且双方都是5.3.2版本引擎 打开Help->About Unreal Editor可以看到引擎版本 或者直接查看引擎版本文件&#xff1a;XXXXX\Engine\Build\Build.version 里面能看到对应的分支名字

2024Java最新面试题总结(针对于一些小厂、中厂)

这是根据个人面试经历总结出来的一些经验希望可以帮助到有需要的人。 面试的时候&#xff0c;会先让你进行自我介绍&#xff0c;这个大家准备一两分钟的面试稿就可以。然后就是正式面试&#xff0c;面试官一般是两个人以上&#xff0c;开始&#xff0c;面试官会先提问一些基本…

使用CSS实现酷炫加载

使用CSS实现酷炫加载 效果展示 整体页面布局 <div class"container"></div>使用JavaScript添加loading加载动画的元素 document.addEventListener("DOMContentLoaded", () > {let container document.querySelector(".container&q…

SparkCore与FlinkCore的区别有哪些

1.架构理念方面: Spark Core: Spark 基于 RDD&#xff08;弹性分布式数据集&#xff09;的概念构建。RDD 是一个不可变的、分布式的对象集合&#xff0c;它可以在集群中的多个节点上进行并行计算。例如&#xff0c;在处理大规模的日志文件时&#xff0c;Spark 可以将日志文件…

ARM学习(32)FreeRTOS 调度和timer流程

笔者来简单聊一下FreeRTOS的调度流程和timer 流程 之前笔者简单介绍了一下FreeRTOS的IPC 通信方式。现在介绍一下FreeRTOS的调度流程,结合一下ARM CortexM4的寄存器等内容,ARM CortexM4的通用寄存器介绍以及

ubuntu24 finalshell 无法连接ubuntu服务器, 客户端无法连接ubuntu, 无法远程连接ubuntu。

场景&#xff1a; 虚拟机新创建一个最小化的ubuntu服务器&#xff0c;使用finalshell连接服务&#xff0c;发现连接不上。 1. 查看防火墙ufw 是否开启&#xff0c;22端口是否放行 2. 查看是否安装openssh server, 并配置 我的问题是安装了openssh server 但是没有配置root可…

八大排序--07归并排序

假设数组 arr[] {5,7,4,2,0,1,6},请通过插入排序的方式&#xff0c;实现从小到大排列&#xff1a; 方法&#xff1a;先拆分&#xff0c;再合并&#xff0c;并在合并过程中结束临时空间进行排序&#xff1b; 拆分&#xff1a;从待排序列中间位置拆开&#xff0c;数据分成左右两…

【Linux】C文件头文件数裁剪前58644个,裁剪后9373个

裁剪后可以访问网络和从Windows共享的文件夹&#xff1a; 纯C代码编译&#xff08;不包含打包&#xff09;时长比较&#xff1a;未裁剪前&#xff1a;大约5.5小时&#xff0c;裁剪后大约35分钟。 C文件和头文件数量比较&#xff08;目录里边实际还有tools和scripts目录&#xf…