一个非常经典的案例:用go语言来实现空心金字塔的输出
package main
import "fmt"
// 1. 打印矩形
/*
***
***
***
*/
// 2. 打印半个金字塔
/*
*
**
***
*/
// 3. 打印金字塔
/*
* 1层1个 规律:2 * 层数 - 1 空格2:总层数-当前层数i
*** 2个3个
***** 3层5个
*/
// 4. 将层数做成变量:
// 5. 打印空金字塔
// 规律:只有开头和结束是*,其余部分是空的
// 特殊情况:最后一层都是*
/*
*
* *
* *
*/
func main(){
var totalLevel int = 9
for i:=1; i <= totalLevel;i++{ // i表示层数
// 打印空格
for k := 1;k <= totalLevel - i;k++{
fmt.Print(" ")
}
for j :=1;j <= 2 * i - 1;j++{ // j表示每层打印多少个*
// 打印空金字塔
if j == 1 || j == 2 * i-1 || i == totalLevel {
fmt.Print("*")
} else{
fmt.Print(" ")
}
}
fmt.Println() // 换行操作
}
}