MENU

Go 学习笔记:条件语句

August 21, 2021 • Golang

Go 语言提供了多种条件语句,比如 if if...else switch select(待补充)

1.if && if...else

这俩和C语言中的大致相同,最大的不同可能就是if后面不加括号了吧

/*
 * @Author: NorthCityChen
 * @LastEditTime: 2021-08-21 17:31:14
 * @Description:
 * @Website: https://grimoire.cn
 * Copyright (c) NorthCityChen All rights reserved.
 */
package main

import (
    "fmt"
)

func main() {
    var array = [10]int{2: 1, 4: 1, 6: 1}
    for _, i := range array {
        // fmt.Println()
        if i == 1 {
            fmt.Println("YES")
        } else {
            fmt.Println("NO")
        }
    }
}

2.switch 语句

这个switch语句,参照着C语言还是挺好理解的,不过这个case后面不用打大括号这个,倒是挺有Python那味儿了

/*
 * @Author: NorthCityChen
 * @LastEditTime: 2021-08-21 17:36:44
 * @Description:
 * @Website: https://grimoire.cn
 * Copyright (c) NorthCityChen All rights reserved.
 */
package main

import (
    "fmt"
)

func main() {
    var grade string = "A"
    switch grade {
    case "A":
        fmt.Println("优秀")
        fmt.Println("优秀1")
    case "B":
        fmt.Println("良好")
    case "C":
        fmt.Println("中等")
    default:
        fmt.Println("不及格")
    }
}

还有一种写法

/*
 * @Author: NorthCityChen
 * @LastEditTime: 2021-08-21 17:38:59
 * @Description:
 * @Website: https://grimoire.cn
 * Copyright (c) NorthCityChen All rights reserved.
 */
package main

import (
    "fmt"
)

func main() {
    var grade string = "A"
    switch {
    case grade == "A":
        fmt.Println("优秀")
        fmt.Println("优秀1")
    case grade == "B":
        fmt.Println("良好")
    case grade == "C":
        fmt.Println("中等")
    default:
        fmt.Println("不及格")
    }
}

3.Type switch

这个switch就不是用来判断值的了,而是用来判断数据类型的

/*
 * @Author: NorthCityChen
 * @LastEditTime: 2021-08-21 17:52:42
 * @Description:
 * @Website: https://grimoire.cn
 * Copyright (c) NorthCityChen All rights reserved.
 */
package main

import (
    "fmt"
)

func main() {
    var grade interface{}
    grade = "A"
    switch grade.(type) {
    case nil:
        fmt.Println("nil")
    case float32:
        fmt.Println("float32")
    case string:
        fmt.Println("string")
    case bool, int:
        fmt.Println("bool 或 int")
    default:
        fmt.Println("我管他是什么类型")
    }
}

4.fallthrough

使用fallthrough的switch语句会强制执行下一个case而不会去判断是否条件为true

仅支持下方这种例子,不过这玩意儿基本上不咋用就对了
/*
 * @Author: NorthCityChen
 * @LastEditTime: 2021-08-21 18:42:43
 * @Description:
 * @Website: https://grimoire.cn
 * Copyright (c) NorthCityChen All rights reserved.
 */
package main

import (
    "fmt"
)

func main() {
    var grade string = "A"
    switch {
    case grade == "A":
        fmt.Println("优秀")
        fmt.Println("优秀1")
        fallthrough
    case grade == "B":
        fmt.Println("良好")
    case grade == "C":
        fmt.Println("中等")
    default:
        fmt.Println("不及格")
    }
}
作者:NorthCity1984
出处:https://grimoire.cn/golang/go4.html
版权:本文《Go 学习笔记:条件语句》版权归作者所有
转载:欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任