题目要求输出类似空心菱形:
我们可以分成两部分来写,相当于就是正三角和倒三角,假设上面为9层,下面就为8层。
先写上部分的正三角:
public class stat01{
public static void main(String[] args) {
//打印空心菱形
int i = 1; //i表示当前层数
int j = 1;
int k = 1;
int line = 9; //总层数
for (i = 1; i <= line; i++) {
//输出对应空格
for (k = 1; k <= line - i; k++) {
System.out.print(" ");
}
//控制每层打印*的个数
for (j = 1; j <= 2 * i - 1; j++) {
if (j == 1 || j == 2 * i - 1) { //第一个和最后一个为*
System.out.print("*");
}else{
System.out.print(" "); //其他位置为空格
}
}
System.out.println(); //每打印完一层*,就换行
}
}
}
实现效果如图:
接着写下部分的倒三角:
public class stat02{
public static void main(String[] args) {
//打印空心菱形
int i = 1; //i表示当前层数
int j = 1;
int k = 1;
int line = 9; //总层数
//倒三角
for (i = 1; i <= line - 1; i++) {
for (k = 1; k <= i; k++) {
System.out.print(" ");
}
for (j = 1; j <= 2 * (line - 1 - i) + 1; j++) {
if (j ==1 || j == 2 * (line - 1 - i) + 1) { //第一个和最后一个为*
System.out.print("*");
}else{
System.out.print(" "); //其他位置为空格
}
}
System.out.println(); //每打印完一层*,就换行
}
}
}
实现效果如图:
接着把两个代码合在一起,完整代码如下:
public class doublestat{
public static void main(String[] args) {
//打印空心菱形
int i = 1; //i表示当前层数
int j = 1;
int k = 1;
int line = 9; //总层数
for (i = 1; i <= line; i++) {
//输出对应空格
for (k = 1; k <= line - i; k++) {
System.out.print(" ");
}
//控制每层打印*的个数
for (j = 1; j <= 2 * i - 1; j++) {
if (j == 1 || j == 2 * i - 1) { //第一个和最后一个为*
System.out.print("*");
}else{
System.out.print(" "); //其他位置为空格
}
}
System.out.println(); //每打印完一层*,就换行
}
//倒三角
for (i = 1; i <= line - 1; i++) {
for (k = 1; k <= i; k++) {
System.out.print(" ");
}
for (j = 1; j <= 2 * (line - 1 - i) + 1; j++) {
if (j ==1 || j == 2 * (line - 1 - i) + 1) { //第一个和最后一个为*
System.out.print("*");
}else{
System.out.print(" "); //其他位置为空格
}
}
System.out.println(); //每打印完一层*,就换行
}
}
}
最终效果如图所示:
温馨提示:代码中line代表总层数,是指正三角的层数,真正空心菱形的层数为:2*line-1,需要改层数,直接改line的值就可以了,很方便的。