目录
效果:因为我用的IDEA 编码(GBK,而我设置的是UTF-8),由于编码问题所以没用cmd 编译,和cmd编译出来的效果不太一样,不太好看,所以方案二改进一下。
希望成品:
思路:
1. 先搞定(长方形,简单) :
2. 再搞定(三角形,也简单):
3. 再继续增加难度(有点难度了):
4. 再增加难度(最后的效果):
上代码:
方案一:
代码:
package com.gao.test.exercise;
import java.util.Scanner;
/**
* @Author lie
* @Description 空心金字塔
*/
public class HighTower {
public static void main(String[] args) {
int n = 0;
do {
Scanner in = new Scanner(System.in);
System.out.println("需要打印多高的空心金字塔?(退出程序请输入0)\n请输入:");
n = in.nextInt();//需要打印几行
if(0 == n){
System.out.println("已经退出程序");
}else {
System.out.println("即将创建" + n + "行的空心金字塔");
}
for (int i = 1; i <= n; i++) { //第几行i
for (int j = 0; j < n + 1 - i; j++) { // 打印前面的空格
System.out.print(" ");
}
for (int k = 0; k < 2*i - 1; k++) { //打印星星
//空心判断、最后一行判断
if (k == 0 || k == 2*i - 2 || i == n) {
System.out.print("*");
} else {
System.out.print(" "); //打印空心
}
}
System.out.println("\n");
}
}while (n != 0);
}
}
效果:因为我用的IDEA 编码(GBK,而我设置的是UTF-8),由于编码问题所以没用cmd 编译,和cmd编译出来的效果不太一样,不太好看,所以方案二改进一下。
方案二:
代码:
package com.gao.test.exercise;
import java.util.Scanner;
/**
* @Author lie
* @Description 空心金字塔
*/
public class HighTower {
public static void main(String[] args) {
int n = 0;
do {
Scanner in = new Scanner(System.in);
System.out.println("需要打印多高的空心金字塔?(退出程序请输入0)\n请输入:");
n = in.nextInt();//需要打印几行
if(0 == n){
System.out.println("已经退出程序");
}else {
System.out.println("即将创建" + n + "行的空心金字塔");
}
for (int i = 1; i <= n; i++) { //第几行i
for (int j = 0; j < n + 1 - i; j++) { // 打印前面的空格
System.out.print(" ");
}
for (int k = 0; k < i; k++) { //打印星星
//空心判断、最后一行判断
if (k == 0 || k == i - 1 || i == n) {
System.out.print(" *");
} else {
System.out.print(" "); //打印空心
}
}
System.out.println("\n");
}
}while (n != 0);
}
}
效果:(好看很多)
最后来个高的金字塔: