if else
a :=101
if a<10 {
fmt.Printf("a < 10 \n")
}else {
fmt.Printf("a >= 10 \n")
}
if - else if - else
a :=88
if a >= 100 {
fmt.Printf("a > 100 \n")
}else if a >= 80 {
fmt.Printf("a >= 80 and a < 100 \n")
}else {
fmt.Printf("a < 80 \n")
}
if 初始化子语句
// 子语句只能有1个表达式
if a:=18; a< 20 {
fmt.Printf(" a <20 \n")
}else{
fmt.Printf(" a >=20 \n",)
}
switch
字符串
func printGrade( grade string) {
switch {
case grade == "A":
fmt.Printf("A1 \n")
case grade == "B":
fmt.Printf("B1 \n")
case grade == "C":
fmt.Printf("C1 \n")
case grade == "D":
fmt.Printf("D1 \n")
default:
fmt.Printf("Other. \n")
}
}
数字
func printGrade2( grade int) {
switch {
case grade >= 90:
fmt.Printf("A1 \n")
case grade >=80:
fmt.Printf("B1 \n")
case grade >=70:
fmt.Printf("C1 \n")
case grade >=60:
fmt.Printf("D1 \n")
default:
fmt.Printf("Other. \n")
}
}
多个表达式
两种写法
写法1
case grade == "A",grade == "a"
写法2
case grade == "c":
fallthrough
case grade == "C":
fmt.Printf("C1 grade=%s\n",grade)
func printGrade3(grade string) {
switch {
case grade == "A",grade == "a":
fmt.Printf("A1 grade=%s\n",grade)
case grade == "b":
case grade == "B":
fmt.Printf("B1 grade=%s\n",grade)
case grade == "c":
fallthrough
case grade == "C":
fmt.Printf("C1 grade=%s\n",grade)
case grade == "D":
fmt.Printf("D1 grade=%s\n",grade)
default:
fmt.Printf("Other. grade=%s\n",grade)
}
}
A1 grade=a
A1 grade=A
B1 grade=B
C1 grade=c
C1 grade=C
Other. grade=d
D1 grade=D
Other. grade=E
注意:
case grade == “b” 这个不会输出
fordemo
for i:=0; i<10;i++ {
fmt.Printf(" i=%d \n",i)
}
range
打印字符串
str := "123456789"
fmt.Println()
for i,char := range str {
fmt.Printf(" i=%d,char=%d \n",i,char)
}
打印map
m := map[string]int{"one":1,"two":2}
for k,v := range m {
fmt.Printf(" key=%s,value=%d \n",k,v)
}
打印数组
numbers := []int{10,20,30,40}
for i,v := range numbers {
fmt.Printf(" 第%d次,value=%d \n",i,v)
}