我是靠谱客的博主 超帅月饼,这篇文章主要介绍Java输出形状,现在分享给大家,希望可以做个参考。

输出矩形

以此矩形案例(4行,9列的矩形)为例

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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(); } } //输出结果 ********* ********* ********* *********

前面有空格的矩形

以此矩形案例(4行,9列的矩形)为例

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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(); } } //输出结果 ********* ********* ********* *********

输出平行四边形

以此矩形案例(4行,9列的矩形)为例,要变成平行四边形

  • 第一行前面输出8个空格
  • 第二行前面输出7个空格
  • 第三行前面输出6个空格
  • 第四行前面输出5个空格
复制代码
1
2
3
4
5
********* 1 8 ********* 2 7 ********* 3 6 ********* 4 5

综上所述,得出规律:行数+空格数=9

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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行)为例,要变成三角形

  • 第一行前面输出8个空格,1个星
  • 第二行前面输出7个空格,3个星
  • 第三行前面输出6个空格,5个星
  • 第四行前面输出5个空格,7个星
复制代码
1
2
3
4
5
* 1 8 1 *** 2 7 3 ***** 3 6 5 ******* 4 5 7

综上所述,得出规律:行数+空格数=9,2x行数-1=星的个数

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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(); } } //输出结果: * *** ***** *******

输出菱形

此案例由上面三角形(4行)和下面倒三角形(3行)组合,变成菱形

上面三角形

  • 第一行前面输出8个空格,1个星
  • 第二行前面输出7个空格,3个星
  • 第三行前面输出6个空格,5个星
  • 第四行前面输出5个空格,7个星

下面倒三角形

  • 第一行前面输出6个空格,5个星
  • 第二行前面输出7个空格,3个星
  • 第三行前面输出8个空格,1个星
复制代码
1
2
3
4
5
6
7
8
* 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行数=星的个数

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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(); } } //输出结果: * *** ***** ******* ***** *** *

输出空心菱形

此案例由上面三角形(4行)和下面倒三角形(3行)组合,变成菱形,中间星形由空格代替

复制代码
1
2
3
4
5
6
7
8
* * * * * * * * * * * *

得出规律:在输出星的地方,每行第一个和最后一个输出星,其余输出空格

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
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(); } } //输出结果: * * * * * * * * * * * *

输出正方形

以此案例(5行,5列的正方形)为例

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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(); } } //输出结果: ***** ***** ***** ***** *****

输出实心菱形

以此案例(5行,5列)为例

  • 第一行第一个和最后一个星的位置是3和3
  • 第二行第一个和最后一个星的位置是2和4
  • 第三行第一个和最后一个星的位置是1和5
  • 第四行第一个和最后一个星的位置是2和4
  • 第五行第一个和最后一个星的位置是3和3
复制代码
1
2
3
4
5
6
* 1 3 3 *** 2 2 4 ***** 3 1 5 *** 4 2 4 * 5 3 3
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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--; } } } //输出结果: * *** ***** *** *

如果想输出空心菱形则只需要将:

复制代码
1
2
if (j >= first && j <= end)

改成

复制代码
1
2
if (j == first || j == end)

最后

以上就是超帅月饼最近收集整理的关于Java输出形状的全部内容,更多相关Java输出形状内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部