教你如何使用Java输出各种形状
目录
- 1、输出矩形
- 3、输出平行四边形
- 4、输出三角形
- 5、输出菱形
- 5、输出空心菱形
- 6、输出正方形
- 7、输出实心菱形
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,如果是下半倒三角形则是falsefor (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后移1first--; end++; }else {//在下半倒三角形,开始输出星的位置first后移1,结束输出星的位置end前移1first++; end--; }}}
输出结果:
*如果想输出空心菱形则只需要将:
***
*****
***
*
if (j >= first && j <= end)
改成:
if (j == first || j == end)
【教你如何使用Java输出各种形状】到此这篇关于教你如何使用Java输出各种形状的文章就介绍到这了,更多相关Java输出形状内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- 考研英语阅读终极解决方案——阅读理解如何巧拿高分
- 由浅入深理解AOP
- 如何寻找情感问答App的分析切入点
- 【译】20个更有效地使用谷歌搜索的技巧
- mybatisplus如何在xml的连表查询中使用queryWrapper
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决
- MybatisPlus使用queryWrapper如何实现复杂查询
- 如何在Mac中的文件选择框中打开系统隐藏文件夹
- 漫画初学者如何学习漫画背景的透视画法(这篇教程请收藏好了!)
- java中如何实现重建二叉树