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

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 01.{ 换行: Opening Brace Can't Be Placed on a Separate Lin...
    码农不器阅读 2,470评论 0 14
  • fmt格式化字符串 格式:%[旗标][宽度][.精度][arg索引]动词旗标有以下几种:+: 对于数值类型总是输出...
    皮皮v阅读 1,194评论 0 3
  • Go入门 Go介绍 部落图鉴之Go:爹好还这么努力? 环境配置 安装 下载源码编译安装 下载相应平台的安装包安装 ...
    齐天大圣李圣杰阅读 4,745评论 0 26
  • 申金鑫 17101223365 转载自知乎专栏 Go语言实战笔记 【嵌牛导读】:本教程详细介绍了Go语言的一些包的...
    Felixxin阅读 550评论 0 1
  • 出处---Go编程语言 欢迎来到 Go 编程语言指南。本指南涵盖了该语言的大部分重要特性 Go 语言的交互式简介,...
    Tuberose阅读 18,691评论 1 46

友情链接更多精彩内容