1、if语句
package main import ( "fmt" "io/ioutil" ) func main() { //流程控制 //使用常量定义一个文件名 const filename = "golang_1.go" //打开一个文件,返回两个值,一个是文件的内容,一个是错误 con,err := ioutil.ReadFile(filename) //这里的nil和python中的None是一样的 if err != nil{ fmt.Println(err) }else { fmt.Printf("%s ",con) } }
2、switch语句
package main import "fmt" //switch结构 //go语言的switch默认匹配到一项后,就不在往下匹配了 //如果加一个fallthrough关键字,还会往下匹配 func test(score int) string { var g = "" switch { case score < 0 || score >100: g = "输入错误" fallthrough case score < 80: g = "B" case score < 90: g = "A" case score == 100: g = "A++" } return g } func main() { //fmt.Println(test(101)) //fmt.Println(test(10)) //fmt.Println(test(70)) //fmt.Println(test(80)) fmt.Println(test(100)) }
3、for循环
package main import ( "fmt" "time" ) func for1() { //无限死循环 //for循环,无限次死循环 for { fmt.Println("法国必胜") time.Sleep(2 * time.Second) } } func for2() { //for循环,有限次循环 for i := 1;i < 11;i++ { fmt.Println(i,"法国必胜") time.Sleep(2 * time.Second) } } func for3() { //for和if语句结合使用 for i := 1;i < 100;i++ { if i % 2 == 0{ fmt.Println("为偶数",i) }else if i % 2 == 1 { fmt.Println("为即数",i) }else { fmt.Println("为错误",i) } time.Sleep(100 * time.Millisecond) } } func main() { for2() for3() }
4、rang循环
package main import "fmt" func main() { //rang循环 var s string s = "abcefghigjklmn" for i := range s { //%d是数字,%c是字符 fmt.Printf("下标=%d,值=%c ",i,s[i]) } //i是下标,c是值 for i,c := range s { fmt.Printf("下标=%d,值=%c ",i,c) } }
5、循环和控制语句结合
package main import "fmt" func main() { //循环的控制语句 for i := 0;i < 11;i++ { if i == 2{ //跳出循环 //break //结束本次循环,直接进入下次循环 continue } fmt.Println(i) } }