4.6 案例一:打印金字塔
编写一个程序,可以接收一个整数,表示层数,打印出金字塔。
1️⃣第一步:打印一个矩形
package main
import "fmt"
func main() {
// i表示层数
for i := 1; i <= 3; i++ {
// j表示每层打印多少*
for j := 1; j <= 3; j++ {
fmt.Print("*")
}
fmt.Println()
}
}
✅运行结果:
2️⃣第二步:打印半个金字塔:
package main
import "fmt"
func main() {
// i表示层数
for i := 1; i <= 3; i++ {
// j表示每层打印多少*
for j := 1; j <= i; j++ {
fmt.Print("*")
}
fmt.Println()
}
}
✅运行结果:
3️⃣第三步:打印整个金字塔
package main
import "fmt"
func main() {
var totalLevel int = 7
// i表示层数
for i := 1; i <= totalLevel; i++ {
// 在打印*前先打印空格
for k := 1; k <= totalLevel-i; k++ {
fmt.Print(" ")
}
// j表示每层打印多少*
for j := 1; j <= 2*i-1; j++ {
fmt.Print("*")
}
fmt.Println()
}
}
✅运行结果:
4️⃣第四步:打印空心金字塔
分析:
- 每一层的第一个和最后一个打印
*
,其他的打印空格
- 最后一层全部打印
*
package main
import "fmt"
func main() {
var totalLevel int = 15
// i表示层数
for i := 1; i <= totalLevel; i++ {
// 在打印*前先打印空格
for k := 1; k <= totalLevel-i; k++ {
fmt.Print(" ")
}
// j表示每层打印多少*
for j := 1; j <= 2*i-1; j++ {
if j == 1 || j == 2*i-1 || i == totalLevel {
fmt.Print("*")
} else {
fmt.Print(" ")
}
}
fmt.Println()
}
}
✅运行结果: