实心金字塔代码如下:
/**
* 使用“*”打印金字塔
*
* @author 语仄无言
*/
public class Starts {
public static void main(String[] args) {
//打印普通金字塔
for (int i = 1; i <= 5; i++) {
//在输出*之前,还要输出对应的空格,空格数量等于金字塔的总层数-当前层
for (int k = 1; k <= 5 - i; k++) {
System.out.print(" ");
}
//控制打印每层的*的个数
for (int j = 1; j <= 2 * i - 1; j++) {
System.out.print("*");
}
System.out.println("");
}
}
}
空心金字塔实现代码如下:
//打印空心金字塔
class start2 {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
//在输出*之前,还要输出对应的空格,空格数量等于金字塔的总层数-当前层
for (int k = 1; k <= 5 - i; k++) {
System.out.print(" ");
}
//控制打印每层的*的个数
for (int j = 1; j <= 2 * i - 1; j++) {
//当前行的第一个是*,最后一个也是*,最后一层输出全部*
if (j == 1 || j == 2 * i - 1 || i == 5) {
System.out.print("*");
//如果不是第一个和最后一个,则打印空格
} else {
System.out.print(" ");
}
}
System.out.println("");
}
}
}
两段代码都是使用for循环进行打印输出的,不同之处在于空心金字塔在打印时增加了一个if-else判断,我们知道空心金字塔的第一行是只打印一个“*”,第二到第四行都是打印第一个“*”和最后一个“*”,最后一行则是打印全部的“*”,我们需要做的就是在控制打印每层“*”个数的时候判断:如果当前行是第一行,只打印一个“*”,如果是最后一行,则打出全部“*”,而二到四行则只打印该行的第一个“*”和最后一个“*”,故得出以上的空心金字塔代码