if(在Golang里面if条件没有括号)

if x > 100{
    fmt.Printf("一百")
}else if x > 10{
    fmt.Printf("九十")
}else{
    fmt.Printf("小于九十")
}

for

package main
import "fmt"
func main() {
//	var x int
//	sum := 0
//	for x = 1;x <=100; x ++ {
//		sum += x
    sum := 0
    x := 1
    for x <= 100 {
        sum += x 
        x ++
    }
//	}
	fmt.Print(sum)
}
两种代码表示方式 for 相当于以前的 while

输出结果

5050
进程 已完成,退出代码为 0

switch

switch sExpr
 { 
	case expr1:   
 		some instructions           //后面没有break!
    case expr2:    
        some other instructions 
    case expr3:    
        some other instructions 
    default:   
        other code 
}

每一条case语句默认带了break,没有C语言的穿透性

package main

import "fmt"

func main() {
	x := 2
	switch x {
	case 1:
		fmt.Print("yesai 1")              //后面没有break
	case 2:
		fallthrough                //如果想继续后面的case,即具有穿透性,可以使用fallthrough
	case 3:
		fmt.Print("yesai 3")
	default:
		fmt.Print("yesai 4")
	}
}

结果输出:

yesai 3
进程 已完成,退出代码为 0

range

Go语言的关键字range,用于便捷地遍历容器中的元素。(相当于foreach)

package main

import "fmt"

func main() {
	x := [5]int{1,2,3,4,5}       //简短声明,遍历数组,range结合for循环用
	y := make(map[string]int)
	y["zhangsan"] = 78
	y["lisi"] = 90
	y["wangwu"] = 100
	for i , v := range x{          // i相当于key , v相当于value
		fmt.Println(i,v)           //Println 换行
	}
	for i , v := range y {
		fmt.Println(i,v)
	}
    for _, v := range y{           //用_ 占位符不显示key
        fmt.Println(v)
    }
}

输出结果:

0 1
1 2
2 3
3 4
4 5
zhangsan 78
lisi 90
wangwu 100
78
90
100

进程 已完成,退出代码为 0
range还可以输出字符串

参考如下:

package main
import "fmt"
func main(){
    x := "zhangsan"
    for _ , v := range x{
        fmt.Printf("%c\n", v)      //以字符串的形式输出
    }
}

输出结果:

z
h
a
n
g
s
a
n

进程 已完成,退出代码为 0