go语言学习(六、语言条件语句)

Go 语言提供了以下几种条件判断语句:

package main

import "fmt"

func main() {
	// If 在布尔表达式为 true 时,其后紧跟的语句块执行,如果为 false 则不执行
	if true {
		fmt.Println("犀利的大熊")
	}

	// If 在布尔表达式为 true 时,其后紧跟的语句块执行,如果为 false 则执行 else 语句块
	if true {
		fmt.Println("犀利的大熊")
	} else {
		fmt.Println("犀利的二熊")
	}

	// If嵌套 表达式都为真的时候执行
	if true {
		if true {
			fmt.Println("犀利的大熊")
		}
	}

	// switch 语句用于基于不同条件执行不同动作,
	// 每一个 case 分支都是唯一的,从上至下逐一测试,直到匹配为止
	// switch 语句执行的过程从上至下,直到找到匹配项,匹配项后面也不需要再加 break
	// switch 默认情况下 case 最后自带 break 语句,匹配成功后就不会执行其他 case
	// 如果我们需要执行后面的 case,可以使用 fallthrough
	var1 := 100
	switch var1 {
	case 90:
		fmt.Println(90)
	case 80, 79, 78:
		fmt.Println(80)
	case 70:
		fmt.Println(70)
	default:
		fmt.Println("没匹配到值")
	}

	// select 是 Go 中的一个控制结构,类似于用于通信的 switch 语句
	// 每个 case 必须是一个通信操作,要么是发送要么是接收
	// 它的语法如下
	// 每个 case 都必须是一个通信 所有 channel 表达式都会被求值
	// 所有被发送的表达式都会被求值 如果任意某个通信可以进行,它就执行,其他被忽略
	// 如果有多个 case 都可以运行,Select 会随机公平地选出一个执行。其他不会执行
	var c1, c2, c3 chan int
	var i1, i2 int
	select {
	case i1 = <-c1:
		fmt.Println("received ", i1, "from", c1)
	case c2 <- i2:
		fmt.Println("send ", i2, " to c2")
	case i3, ok := <-c3: // same as: i3, ok := <-c3
		if ok {
			fmt.Println("received ", i3, " from c3")
		} else {
			fmt.Println("c3 is closed")
		}
	default:
		fmt.Println("no communication")
	}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章