空心三角形
空心三角形输出需要用到判断语句,判断每行的空格与星号的输出,下面写出了完整语句,及相关语句的详细注释。空心菱形同样类似
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
package com.zhebie.test;
public class kongtraingle {
public static void main(string[] args) {
int n= 5 ; //n表示输出空心三角形行数,这里以5行为例
for ( int i= 1 ;i<=n;i++) {
for ( int j= 1 ;j<=n-i;j++) { //控制每行最前面的空格
system.out.print( " " );
}
for ( int k = 1 ; k <= 2 *i- 1 ; k++) { //控制总的星号和空格
if (i== 1 ||i==n) {
/* 控制第一行的与最后一行的星号
* 当i等于n时,每次循环都只会走这一句
* 所以会打印2*n-1个星号 */
system.out.print( "*" );
} else if (k== 1 ||k== 2 *i- 1 ) { //控制第二行到n-1行的星号的输出
system.out.print( "*" );
} else { //控制第二行到n-1行的空格的输出
system.out.print( " " );
}
}
system.out.println(); //每行输出完毕后进行换行操作
}
}
}
|
空心菱形
空心菱形的上半部分与空心三角形完全一样,但是最后一行不能打印星号。
它的下半部分只需要控制上半部分行数减一,判断部分也会做相应的调整,具体下方代码已做详细说明
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
|
package com.zhebie.test;
public class kongtraingle {
public static void main(string[] args) {
int n= 5 ;
//这里输出菱形的上半部分
for ( int i= 1 ;i<=n;i++) {
for ( int j= 1 ;j<=n-i;j++) { //控制每行最前面的空格
system.out.print( " " );
}
for ( int k = 1 ; k <= 2 *i- 1 ; k++) { //控制总的星号和空格
if (i== 1 ) {
/* 控制第一行的与最后一行的星号
* 当i等于n时,每次循环都只会走这一句
* 所以会打印2*n-1个星号 */
system.out.print( "*" );
} else if (k== 1 ||k== 2 *i- 1 ) { //控制第二行到n-1行的星号的输出
system.out.print( "*" );
} else { //控制第二行到n-1行的空格的输出
system.out.print( " " );
}
}
system.out.println(); //每行输出完毕后进行换行操作
}
//这里输出菱形的下半部分
for ( int i= 1 ;i<n;i++) { //控制四行,所以不能使用小于等于号
for ( int j= 1 ;j<=i;j++) { //控制每行最前面的空格
system.out.print( " " );
}
for ( int k = 1 ; k <= 2 *(n-i)- 1 ; k++) { //控制总的星号和空格
if (k== 1 ||k== 2 *(n-i)- 1 ) { //控制第一个星号和最后一个星号
system.out.print( "*" );
} else { //控制中间空心部分
system.out.print( " " );
}
}
system.out.println(); //每行输出完毕后进行换行操作
}
}
}
|
空心矩形
空心矩形相对于空心三角形和空心菱形更简单
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
package com.zhebie.test;
public class kongrectangle {
public static void main(string[] args) {
int n = 5 ;
for ( int i = 1 ; i <=n; i++) { //控制输出行数,由于行与行之间有空格效果,所以打印效果为矩形
for ( int j = 1 ; j <=n; j++) {
if (i== 1 ||i==n) { //控制第一行与最后一行的星号
system.out.print( "*" );
}
else if (j== 1 ||j==n) { //控制第二行到倒数第二行星号
system.out.print( "*" );
} else { //控制第二行到倒数第二行空格
system.out.print( " " );
}
}
system.out.println(); //每输出完一行进行换行操作
}
}
}
|
输出这些空心图形,主要方式就是在for循环中做判断输出
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对服务器之家的支持。如果你想了解更多相关内容请查看下面相关链接
原文链接:https://blog.csdn.net/weixin_43810579/article/details/84726943