教你如何使用Java输出各种形状
作者:CodingDGSun 发布时间:2023-08-21 00:46:55
1、输出矩形
以此矩形案例(4行,9列的矩形)为例
public static void main(String[] args) {
//输出矩形
for (int i = 1; i <= 4; i++) {//控制行,即4行
for (int j = 1; j <= 9; j++) {//控制输出的*的个数,每行9个
System.out.print("*");
}
//换行
System.out.println();
}
}
输出结果:
*********
*********
*********
*********
2、前面有空格的矩形
以此矩形案例(4行,9列的矩形)为例
public static void main(String[] args) {
//输出前面有空格矩形
for (int i = 1; i <= 4; i++) {//控制行,即4行
//输出空格
for (int k = 1; k <= 5; k++) {//控制空格,即每行开始输出5个空格
System.out.print(" ");
}
for (int j = 1; j <= 9; j++) {//控制输出的*的个数,每行9个
System.out.print("*");
}
//换行
System.out.println();
}
}
输出结果:
*********
*********
*********
*********
3、输出平行四边形
以此矩形案例(4行,9列的矩形)为例,要变成平行四边形
第一行前面输出8个空格
第二行前面输出7个空格
第三行前面输出6个空格
第四行前面输出5个空格
********* 1 8
********* 2 7
********* 3 6
********* 4 5
综上所述,得出规律:行数+空格数=9
public static void main(String[] args) {
//输出平行四边形
for (int i = 1; i <= 4; i++) {//控制行,即4行
//输出空格
for (int k = 1; k <= 9 - i; k++) {//控制空格,行数+空格数=9,即每行开始输出9-i个空格
System.out.print(" ");
}
for (int j = 1; j <= 5; j++) {//控制输出的*的个数,每行5个
System.out.print("*");
}
//换行
System.out.println();
}
}
输出结果:
*****
*****
*****
*****
4、输出三角形
以此案例(4行)为例,要变成三角形
第一行前面输出8个空格,1个星
第二行前面输出7个空格,3个星
第三行前面输出6个空格,5个星
第四行前面输出5个空格,7个星
* 1 8 1
*** 2 7 3
***** 3 6 5
******* 4 5 7
综上所述,得出规律:行数+空格数=9,2x行数-1=星的个数
public static void main(String[] args) {
//输出三角形
for (int i = 1; i <= 4; i++) {//控制行,即4行
//输出空格
for (int k = 1; k <= 9 - i; k++) {//控制空格,行数+空格数=9,即每行开始输出9-i个空格
System.out.print(" ");
}
for (int j = 1; j <= 2 * i - 1; j++) {//控制输出的*的个数,2x行数-1=星的个数,即每行2 * i -1个星
System.out.print("*");
}
//换行
System.out.println();
}
}
输出结果:
*
***
*****
*******
5、输出菱形
此案例由上面三角形(4行)和下面倒三角形(3行)组合,变成菱形
上面三角形
第一行前面输出8个空格,1个星
第二行前面输出7个空格,3个星
第三行前面输出6个空格,5个星
第四行前面输出5个空格,7个星
下面倒三角形
第一行前面输出6个空格,5个星
第二行前面输出7个空格,3个星
第三行前面输出8个空格,1个星
* 1 8 1
*** 2 7 3
***** 3 6 5
******* 4 5 7
***** 1 6 5
*** 2 7 3
* 3 8 1
综上所述,得出规律:上面三角形,行数+空格数=9,2x行数-1=星的个数;下面倒三角形,行数+5=空格数,7-2x行数=星的个数
public static void main(String[] args) {
//输出上面三角形
for (int i = 1; i <= 4; i++) {//控制行,即4行
//输出空格
for (int k = 1; k <= 9 - i; k++) {//控制空格,行数+空格数=9,即每行开始输出9-i个空格
System.out.print(" ");
}
for (int j = 1; j <= 2 * i - 1; j++) {//控制输出的*的个数,2x行数-1=星的个数,即每行2 * i -1个星
System.out.print("*");
}
//换行
System.out.println();
}
//输出下面倒三角形
for (int i = 1; i <= 3; i++) {//控制行,即3行
//输出空格
for (int k = 1; k <= i + 5; k++) {//控制空格,行数+5=空格数,即每行开始输出i+5个空格
System.out.print(" ");
}
for (int j = 1; j <= 7 - 2 * i; j++) {//控制输出的*的个数,7-2x行数=星的个数,即每行7 - 2 * i个星
System.out.print("*");
}
//换行
System.out.println();
}
}
输出结果:
*
***
*****
*******
*****
***
*
5、输出空心菱形
此案例由上面三角形(4行)和下面倒三角形(3行)组合,变成菱形,中间星形由空格代替
*
* *
* *
* *
* *
* *
*
得出规律:在输出星的地方,每行第一个和最后一个输出星,其余输出空格
public static void main(String[] args) {
//输出上面三角形
for (int i = 1; i <= 4; i++) {//控制行,即4行
//输出空格
for (int k = 1; k <= 9 - i; k++) {//控制空格,行数+空格数=9,即每行开始输出9-i个空格
System.out.print(" ");
}
for (int j = 1; j <= 2 * i - 1; j++) {//控制输出的*的个数,2x行数-1=星的个数,即每行2 * i -1个星
//在首和尾输出星,其余输出空格
if (j == 1 || j == 2 * i - 1) {
System.out.print("*");
} else {
System.out.print(" ");
}
}
//换行
System.out.println();
}
//输出下面倒三角形
for (int i = 1; i <= 3; i++) {//控制行,即3行
//输出空格
for (int k = 1; k <= i + 5; k++) {//控制空格,行数+5=空格数,即每行开始输出i+5个空格
System.out.print(" ");
}
for (int j = 1; j <= 7 - 2 * i; j++) {//控制输出的*的个数,7-2x行数=星的个数,即每行7 - 2 * i个星
//在首和尾输出星,其余输出空格
if (j == 1 || j == 7 - 2 * i) {
System.out.print("*");
} else {
System.out.print(" ");
}
}
//换行
System.out.println();
}
}
输出结果:
*
* *
* *
* *
* *
* *
*
6、输出正方形
以此案例(5行,5列的正方形)为例
public static void main(String[] args) {
//输出正方形
int len = 5;//正方形边长
for (int i = 1; i <= len; i++) {//控制行,即4行
for (int j = 1; j <= len; j++) {//输出星,即每行输出j个星
System.out.print("*");
}
//换行
System.out.println();
}
}
输出结果:
*****
*****
*****
*****
*****
7、输出实心菱形
以此案例(5行,5列)为例
第一行第一个和最后一个星的位置是3和3
第二行第一个和最后一个星的位置是2和4
第三行第一个和最后一个星的位置是1和5
第四行第一个和最后一个星的位置是2和4
第五行第一个和最后一个星的位置是3和3
* 1 3 3
*** 2 2 4
***** 3 1 5
*** 4 2 4
* 5 3 3
public static void main(String[] args) {
//输出实心菱形
int len = 5;//边长
int first = len / 2 + 1;//开始输出星的位置
int end = len / 2 + 1;//结束输出星的位置
boolean flag = true;//如果是上半部三角形则是true,如果是下半倒三角形则是false
for (int i = 1; i <= len; i++) {//控制行,即4行
for (int j = 1; j <= len; j++) {//输出星,即每行输出j个星
if (j >= first && j <= end) {//在每行的起始至结束位置输出星
System.out.print("*");
} else {
System.out.print(" ");
}
}
//换行
System.out.println();
if(end == len){//最后一个星位置是边长宽度
flag = false;//下一行,马上执行下半部倒三角形
}
if(flag){
//在上半三角形,开始输出星的位置first前移1,结束输出星的位置end后移1
first--;
end++;
}else {
//在下半倒三角形,开始输出星的位置first后移1,结束输出星的位置end前移1
first++;
end--;
}
}
}
输出结果:
*
***
*****
***
*
如果想输出空心菱形则只需要将:
if (j >= first && j <= end)
改成:
if (j == first || j == end)
来源:https://juejin.cn/post/6983617938372689951
猜你喜欢
- 有时候,我们在同一个activity里面有很多fragment,在横竖屏的时候,有些fragment要求重新加载数据,有些不需要,如何简单控
- activity A和BA 获取数据的activity B返回数据的activity点击A上的按钮,在A的textview上显示
- “Java is still not dead—and people are starting to figure that out.”本教
- 本文实例讲述了C#创建临时文件的方法。分享给大家供大家参考。具体分析如下:C#可以通过Path.GetTempFileName获得一个临时文
- 这里我们以拨打电话申请权限来写个小例子,也就是CALL_PHONE,因为拨打电话会涉及用户手机的资费问题,因而被列为了危险权限,在Andro
- 最近研究了一下如何在Android上实现CoverFlow效果的控件,其实早在2010年,就有Neil Davies开发并开源出了这个控件,
- 什么是OKHttp一般在Java平台上,我们会使用Apache HttpClient作为Http客户端,用于发送 HTTP 请求,并对响应进
- 一、项目要求实现一个通讯录通讯录可以用来存储100个人的信息,每个人的信息包括:姓名、性别、年龄、电话、住址提供方法:添加联系人信息删除指定
- 背景在接口请求过程中,传递json对象,springboot转换为实体VO对象后,所有属性都为null。post请求:后台接收请求:当时就懵
- 一、介绍在实际的软件项目开发过程中,我可以很负责任的跟大家说,如果你真的实际写代码的时间超过5年,你对增删改查这类简单的功能需求开发,可以说
- 最近有小伙伴问我,双枚举类该怎么写,还得包括根据key取值方法。于是就手写一个案例如下:/** * 关系类型枚举 */public enum
- 前言在原生的 Android 或 iOS 中,都提供了基本的键值对存储方式,Android 是 SharedPreferences,iOS
- 本文实例讲述了C#实现Base64处理的加密解密,编码解码。分享给大家供大家参考,具体如下:using System;using Syste
- 本文实例为大家分享了C#超市收银系统设计的具体代码,供大家参考,具体内容如下1.登录界面代码如下:using System;using Sy
- 合并有序数组的实现java版本:实例代码public class Merge {//合并有序数组 public static v
- 简单几步,实现SpringMVC+servlet3.0文件上传功能:第一步:配置web.xml文件中的servlet,添加multipart
- 1、修改maven的pom文件只需要将如下依赖添加到pom.xml文件中即可。(注意此处是以plugin的方式,放在<plugins&
- 一个发送验证码的需求:包括限制文本框输入长度和只允许输入数字按惯例 先上图:class MyBody extends StatefulWid
- 一、问题分析入门案例的内容已经做完了,在入门案例中我们创建过一个SpringMvcConfig的配置类,再回想前面咱们学习Spring的时候
- 在 Flutter 中使用图片是最基础能力之一。作为春节开工后的第一篇文章,17 做了精心准备,满满的都是干货!本文介绍如何在 Flutte