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

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

select语句后面会讨论,此处跳过。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PG Thinker

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值