流程控制介绍
1.顺序控制
 没有任何跳转语句,按顺序执行
 2.分支控制
 
 golang支持在if中直接定义一个变量:
 
 
 上面图片中有一处错误,else必须写在上一行,紧凑着第二个大括号:}
 下面的代码才是正确写法:
	if i<9{
		fmt.Println("ok...")
	}else{
		fmt.Println("no...")
	}
所以:
 
 if后面的条件最好使用括号。
 
 从上往下执行,一旦有一条满足条件,只会执行那一条,接下来就算满足条件也不会再执行了。

 上图分析:如果是在c/c++或者其他一些编程语言当中,可以通过编译,将false赋值给b,然后b就为false。
 但在go中,if后面只能是条件语句
嵌套分支
 
 switch分支控制
 
 
 golang的case后的表达式可以有多个,使用逗号隔开。
 程序执行哇case语句块后自动退出Switch,所以不需要在每个case语句最后加break。
 
 switch细节:
 
 
 
 但是这个case 5改成case n1就不会报错,将常量改成变量,就可以与前面的重复。

 7):
 
 8):
 
 9):
 
 如果case 10满足并执行后,直接穿透下一层case 20,也就是说虽然num不等于20,但case 20语句依旧可以执行,不需要判断是否符合条件,只能穿透一层。如果case 20后面再加一个穿透,那么case 30也会执行。
这个穿透了解就好,平常不建议使用。
 
 interface:接口

3.循环控制
for循环,for后面不能加括号
func main(){
	for i:=1;i<=10;i++ {
		fmt.Println("3")
	}
}

 
 
 golang提供for_range的方式,可以方便遍历字符串和数组。
 
 index的值是每个字符对应的位置下标,类似于数组。要是不想要index,可以用下划线代替,如下面代码:
func main(){
	var str string="hello"
	for _,val:=range str {
		fmt.Printf("%c",val)
	}
}

 处理办法:利用rune切片
 
 str2的数据类型不能string,否则报错。
 但对于for-range的方式来遍历字符串的话,字符串中有中文也是可以照常输出的。
go语言中没有while和do…while,可以用for来实现其效果。
 模拟while:
 
 模拟do…while:
 
 多重循环控制
 
 利用多重循环打印金字塔
package main
import (
	"fmt"
)
func main(){
	var n int;
	fmt.Scanf("%d",&n)
	for i:=1;i<=n;i++ {
		for k:=1;k<=n-i;k++ {
			fmt.Print(" ")
		}
		for j:=1;j<=2*i-1;j++ {
			fmt.Print("*")
		}
		fmt.Println()
	}
}
打印九九乘法表
package main
import (
	"fmt"
)
func main(){
	for i:=1;i<=9;i++{
		for j:=1;j<=i;j++{
			fmt.Printf("%d*%d=%d \t",j,i,j*i)
		}
		fmt.Println()
	}
}










