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 = 200

    if 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 = 90

    switch 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 = 0

    numbers := [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)
    }

}
    原文作者:朽木可雕也_
    原文地址: https://www.jianshu.com/p/bf2bda07147a
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞