5.golang之分支控制

1. 分支控制的基本介绍

分支控制就是让程序有选择执行。有下面三种形式

1) 单分支

        <1> 基本语法:

        

         

package main
import (
	"fmt"
)

func main() {
	// 单分支控制
	// 编写一个程序,可以输入人的年龄,如果该同志的年龄大于18岁,则输出你年龄大于18,要对自己的行为负责!
	var age int
	fmt.Println("请输入你的年龄")
	fmt.Scanln(&age)
	if age > 18 {
		fmt.Println("你的年龄大于18,要对自己的行为负责")
	}
}

单分支对应的流程图

 单分支的细节说明:

如果只有一条语句,在golang中也必须写上大括号:“{}”

2) 双分支

基本语法:

 应用案例:

package main
import (
	"fmt"
)

func main() {
	var age int
	// 2. 双分支控制
	fmt.Scanln(&age)
	if age > 18 {
		fmt.Println("你的年龄大于18,要对自己的行为负责了")
	} else {
		fmt.Println("你的年龄不大,这次放过你了")
	}
}

双分支流程图

 对双分支的总结:

1. 从上图看,条件表达式: age > 18

2. 执行代码块 1  ===> fmt.Println(" 你的年龄大于18")

3. 执行代码块 2  ===> fmt.Println("你的年龄不大")

4. 强调一下: 双分支只会执行其中一个分支

*案例: 单分支和双分支

// 1)对下列代码,若有输出,指出输出结果
var x int = 4
var y int = 1
if x>2 {
    if y > 2 {
        fmt.Println(x + y)
    }
    fmt.Println("atguigu")
} else {
    fmt.Println("x is =",x)
}
// 输出结果是 atguigu

// 2)对下列代码,若有输出,指输出结果
var x int = 4
if x > 2 
    fmt.Println("ok")
else 
    fmt.Println("hello")

// 编译错误,原因:没有大括号"{}",一条语句也要加上大括号

// 3) 对下列代码,若有输出,指出输出结果。
var x int = 4
if x > 2 {
    fmt.Println("ok")
}
else {
    fmt.Println("hello")
}
// 编译错误,原因是 else不能换行

// 4) 对下列代码,若有输出,指出输出结果
var x int = 4
if (x > 2) {
    fmt.Println("ok")
} else {
    fmt.Println("hello")
}
// 正确,输出ok
// 虽然正确,但是要求 if(x > 2) 写成 if x > 2 {...}

3) 多分支控制

基本语法:

对上面基本语法的说明

1)多分支的判断流程如下:

     <1>  先判断条件表达式1是否成立,如果为真,就执行代码块1

     <2>  如果条件表达式1为假,判断条件表达式2是否成立,如果条件表达式2为真,就执行代码块2。

     <3>  以此类推

     <4>  如果所有的条件表达式不成立,则执行else的语句块

2)else 不是必须的

3)多分支只能由一个执行入口

流程图如下:

         

 

多分支案例:

// 5. 多分支案例演示
	// 岳小鹏参加Golang考试,他和父亲岳不群达成承诺:
	// 如果:
	// 成绩为100分时,奖励一辆BMW
	// 成绩为(80,99)时,奖励一台iphone7plus
	// 当成绩为(60,80)时,奖励一台iPad
	// 其它时,什么奖励也没有
	// 请从键盘输入岳小鹏的期末成绩,并加以判断
	var grade int32
	fmt.Println("请输入岳小鹏的成绩:")
	fmt.Scanln(&grade)
	if grade == 100 {
		fmt.Println("奖励一辆BMW")
	} else if grade > 80 && grade <= 99 {
		fmt.Println("奖励一台iphone7plus")
	} else if grade >= 60 && grade <= 80 {
		fmt.Println("奖励一台iPad")
	} else {
		fmt.Println("什么奖励也没有")
	}
	// 使用陷阱...只会输出ok
	var n int = 10
	if n > 9 {
		fmt.Println("ok1")
	} else if n > 6 {
		fmt.Println("ok2")
	} else if n > 3 {
		fmt.Println("ok3")
	} else {
		fmt.Println("ok4")
	}

使用陷阱

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值