Go语言学习(三)分支结构

254次阅读
没有评论

共计 1560 个字符,预计需要花费 4 分钟才能阅读完成。

内容目录

Go的分支结构

 Go的分支结构与其它高级语言相似,支持if,if-else,if-else嵌套,switch等,Go在这些基础上,还有一个select语句。

 这些语句如下:

语句 描述
if 语句 if 语句 由一个布尔表达式后紧跟一个或多个语句组成。
if...else 语句 if 语句 后可以使用可选的 else 语句, else 语句中的表达式在布尔表达式为 false 时执行。
if 嵌套语句 你可以在 ifelse if 语句中嵌入一个或多个 ifelse if 语句。
switch 语句 switch 语句用于基于不同条件执行不同动作。
select 语句 select 语句类似于 switch 语句,但是select会随机执行一个可运行的case。如果没有case可运行,它将阻塞,直到有case可运行。

if-else系列

if-else系列的分支结构是我们最常用的,Go语言中的if-else的语法如下:

    if 条件表达式 {

    }else if 条件表达式 {

        if 条件表达式 {

        }else {

        }

    }else {

    }

看起来可能有点乱,但有编程基础读者一定能够Get到点上的。

案例

用户输入name,若name为Bob,输出Hello,Bob,若为Alice,输入Hi,Alice,否则输出Bye,{name}

package main

import "fmt"

func main() {
    var name string
    fmt.Scan(&name)
    if name == "Bob" {
        fmt.Println("Hello," + name)
    } else if name == "Alice" {
        fmt.Println("Hi," + name)
    } else {
        fmt.Println("Bye," + name)
    }
}

用户输入成绩score,若score>=90,输出A,若在[80,90),输出B,依次类推,分别输出C,D,score < 60,输出E.

package main

import "fmt"

func main() {
    var score float32
    var outText byte
    fmt.Scan(&score)
    if score >= 90 {
        outText = 'A'
    } else if score >= 80 {
        outText = 'B'
    } else if score >= 70 {
        outText = 'C'
    } else if score >= 60 {
        outText = 'D'
    } else {
        outText = 'E'
    }
    fmt.Printf("%.1f转化为等级后为:%c\n", score, outText)
}

switch语句

 Go的switch语法规则如下:

switch vari {

    case val1:
        语句1

    case val2:
        语句2
    ...

    default:
        语句n
}

 switch示例如下:

package main

import "fmt"

func main() {
    var score int
    var msg string
    fmt.Scan(&score)

    switch score {
    case 100:
        msg = "满分"
    default:
        msg = "不是满分"

    }
    fmt.Println(msg)
}

 除了上述这个格式,还有如下格式:

    switch {

        case 条件1:
            语句1

        case 条件2:
            语句2

        case 条件3:
            语句3

        ...

        default:
            语句n
    }

 示例如下:

package main

import "fmt"

func main() {
    var score int
    var msg string
    fmt.Scan(&score)

    switch {
    case score >= 90:
        msg = "优秀"
    case score >= 80:
        msg = "良好"
    case score >= 70:
        msg = "一般"
    case score >= 60:
        msg = "较差"
    default:
        msg = "差"
    }
    fmt.Println(msg)
}
正文完
 
PG Thinker
版权声明:本站原创文章,由 PG Thinker 2023-09-15发表,共计1560字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
热评文章
Rust中所有权与借用规则概述

Rust中所有权与借用规则概述

在GC与手动管理内存之间,Rust选择了第三种:所有权机制...