Go之路(九):流程控制
流程控制
主要说一下switch
练习1:
写一个程序猜数字
package main import( "fmt" "math/rand" ) func main(){ var a int a = rand.Intn(100) var b int for { fmt.Scanf("%d/n", &b) flag := false switch { case a == b: fmt.Println("bingo") flag = true case b > a: fmt.Println("bigger") case b < a: fmt.Println("less") } if flag{ break } } }
1.Scanf这里第一个参数是格式化字符串,d代表整数,s代表字符串,后面是分隔符,默认是使用空格
2.如果用默认的话会打印两次,因为会把回车也算入里面,用/n作为分隔符即可解决
练习2:
package main import( "fmt" ) func main(){ for i := 0; i<=5; i++{ for ii := 0; ii<=i;ii++{ fmt.Print("A") } fmt.Println() } }
for range
package main import( "fmt" ) func main(){ str := "hello world , 中国" for index, value := range str{ fmt.Printf("index[%d], value[%c], len=%d\n",index, value , len([]byte(string(value)))) } }