if

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” 这个不会输出

for

demo

    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)
	}