Go语言开发4---语句

package main import "fmt" /* Go 语言条件语句 */ func main() {/* if语句 */ var a int = 10/* 使用 if 语句判断布尔表达式 */ if a < 20 { /* 如果条件为 true 则执行以下语句 */ fmt.Printf("a 小于 20\n") } fmt.Printf("a 的值为 : %d\n", a)/* if else 语句 */ if a < 20 { /* 如果条件为 true 则执行以下语句 */ fmt.Printf("a 小于 20\n") } else { /* 如果条件为 false 则执行以下语句 */ fmt.Printf("a 不小于 20\n") } fmt.Printf("a 的值为 : %d\n", a)/* if 嵌套语句 */var b int = 200if a == 100 { /* if 条件语句为 true 执行 */ if b == 200 { /* if 条件语句为 true 执行 */ fmt.Printf("a 的值为 100 , b 的值为 200\n"); } } fmt.Printf("a 值为 : %d\n", a) fmt.Printf("b 值为 : %d\n", b)/* Switch 语句*/var grade string = "B" var marks int = 90switch marks { case 90: grade = "A" case 80: grade = "B" case 50, 60, 70: grade = "C" default: grade = "D" }switch { case grade == "A": fmt.Printf("优秀!\n") case grade == "B", grade == "C": fmt.Printf("良好\n") case grade == "D": fmt.Printf("及格\n") case grade == "F": fmt.Printf("不及格\n") default: fmt.Printf("差\n") } fmt.Printf("你的等级是 %s\n", grade)/* switch 语句还可以被用于 type-switch 来判断某个 interface 变量中实际存储的变量类型。 */ var x interface{}switch i := x.(type) { case nil: fmt.Println("x 的类型 :%T", i) case int: fmt.Println("x 是 int 型") case float64: fmt.Println("x 是 float64 型") case func(int) float64: fmt.Println("x 是 func(int) 型") case bool, string: fmt.Println("x 是 bool 或 string 型") default: fmt.Println("未知型") } /* select是Go中的一个控制结构,类似于用于通信的switch语句。每个case必须是一个通信操作,要么是发送要么是接收。 select随机执行一个可运行的case。如果没有case可运行,它将阻塞,直到有case可运行。一个默认的子句应该总是可运行的。 */ var c1, c2, c3 chan int var i1, i2 int select { case i1 = <-c1: fmt.Printf("received ", i1, " from c1\n") case c2 <- i2: fmt.Printf("sent ", i2, " to c2\n") case i3, ok := (<-c3): // same as: i3, ok := <-c3 if ok { fmt.Printf("received ", i3, " from c3\n") } else { fmt.Printf("c3 is closed\n") } default: fmt.Printf("no communication\n") } /* for循环是一个循环控制结构,可以执行指定次数的循环。 Go语言的For循环有3中形式,只有其中的一种使用分号。 */b = 8 a = 0numbers := [6]int{1, 2, 3, 5}/* for 循环 */ for a := 0; a < 10; a++ { fmt.Printf("a 的值为: %d\n", a) }for a < b { a++ fmt.Printf("a 的值为: %d\n", a) }for i, x := range numbers { fmt.Printf("第 %d 位 x 的值 = %d\n", i, x) }}

    推荐阅读