Go学习笔记(五)
多重循环控制
1、将一个循环放到另一个循环内,就形成了嵌套循环,在外边的FOR成为外层循环,在里面的for循环成为内层循环(不建议超过3层循环)
2、实际上,嵌套循环就是把内层循环当初外层循环的循环体,只有内层的循环条件为false时,才会完全跳出内层循环,才可以结束外层的当次循环,开始下一次的循环
3、设外层循环次数为m次,内层为n次,则内层循环体实际上需要执行m*n=mn次
编程思路:
1、先易后难,将一个复杂的问题拆解成一个简单的问题
2、先死后活,先写死,然后用变量做活
打印半边金字塔
for i := 1; i <= 9; i++ {
for j := 1; j <= i; j++ {
fmt.Print("*")
}
fmt.Println()
}
这里print和println的区别
print是不会有空行且换行的
println则会有空格和换行
打印金字塔
var totallevel int = 9
for i := 1; i <= totallevel; i++ {
for k := 1; k <= totallevel - i; k++ {
fmt.Print(" ")
}
for j := 1; j <= 2 * i - 1; j++ {
fmt.Print("*")
}
fmt.Println()
}
打印空心金字塔
var totallevel int = 9
for i := 1; i <= totallevel; i++ {
for k := 1; k <= totallevel - i; k++ {
fmt.Print(" ")
}
for j := 1; j <= 2 * i - 1; j++ {
if j == 1 || j == 2 * i - 1 || i == totallevel {
fmt.Print("*")
} else {
fmt.Print(" ")
}
}
fmt.Println()
}
打印空心菱形
package main
import "fmt"
func main() {
///打印空心菱形
///先打印菱形的上半部分
/// 上半部分是每层 * 的个数 = 2 * 当前层 - 1
/// 空格 = 总层数 - 当前层
/// totallevel - 1 每层 * 的个数 = totallevel * 3 - (2 * i + totalleverl) - 1
var totallevel int = 9
for i := 1; i <= totallevel; i++ {
for k := 1; k <= totallevel - i; k++ {
fmt.Print(" ")
}
for j := 1; j <= 2 * i - 1; j++ {
if j == 1 || j == 2 * i - 1 {
fmt.Print("*")
} else {
fmt.Print(" ")
}
}
fmt.Println()
}
for i := 1; i <= totallevel - 1; i++{
for k := 1; k <= i; k++ {
fmt.Print(" ")
}
for j := 1; j <= 3 * totallevel - (2 * i + totallevel) - 1; j++ {
if j == 1 || j == 3 * totallevel - (2 * i + totallevel) - 1 {
fmt.Print("*")
} else {
fmt.Print(" ")
}
}
fmt.Println()
}
}

浙公网安备 33010602011771号