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\n",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\n",i,s[i])
}
//i是下标,c是值
for i,c := range s {
fmt.Printf("下标=%d,值=%c\n",i,c)
}
}
5、循环和控制语句结合
package main
import "fmt"
func main() {
//循环的控制语句
for i := 0;i < 11;i++ {
if i == 2{
//跳出循环
//break
//结束本次循环,直接进入下次循环
continue
}
fmt.Println(i)
}
}
浙公网安备 33010602011771号