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号
浙公网安备 33010602011771号