嵌套分支 | 学习笔记

简介: 简介:快速学习嵌套分支

开发者学堂课程【Go 语言核心编程 - 基础语法、数组、切片、Map :嵌套分支】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/625/detail/9568


嵌套分支

 

内容介绍:

一、基本介绍

二、基本语法

三、应用案例1

四、应用案例2


一、基本介绍

在一个分支结构(if 语句)中,又完整地嵌套了另一个完整的分支结构。里面的分支结构称为内层分支,外面的分支结构称为外层分支。


二、基本语法

if 条件表达式 {

if 条件表达式 {

} else {

}

}

注:

if 条件表达式下还可以嵌套更多的if条件表达式,但是在编程语言中,嵌套分支不宜过多,建议控制在3层内,因为嵌套的层数越多,逻辑越复杂。

如果要实现编程目标,所需的嵌套层数较多的话,可以采用其他方式解决。

 

三、应用案例1

参加百米运动会,如果用时8秒以内进入决赛,否则提示淘汰,并且根据性别提示进入男子组或女子组,输入成绩和性别,进行判断。

float64 second | string gender

(先自行练习)

新建文件夹 exe03,在该文件夹下新建一个文件 main.go

(1)思路分析

①定义一个变量,来接收跑步使用的秒数 float64

②定义一个变量,来接收性别 string

③由于判断是嵌套的判断,故应使用嵌套分支

(2)对应代码

package main

import (

"fmt"

)

func main() {

var second float64

fmt.Println("请输入秒数")

fmt.Scanln("&second")

if second <=8 {

var gender string

fmt.Println("请输入性别")

fmt.Scanln(&&gender)

if gender == "男" {

fmt.Println("进入决赛的男子组")

} else {

fmt.Println("进入决赛的女子组")

}

} else {

fmt.Println("out...")

}

}

(3)运行结果

根据提示输入各项数据,随输入数据的不同,结果不同。

如:

①秒数输入“6”,性别输入“男”,输出结果为“进入决赛的男子组”

②秒数输入“9”,输出结果为“out...”

 

四、应用案例2

出票系统:根据淡旺季的月份和年龄打印票价

4-10旺季:

成人(18-60):60

儿童(<18):半价

老人(>60):1/3

淡季:

成人:40

其他:20

(1)思路分析

①定义月份 month,年龄 age 的两个变量 byte

(可存放255,可接收这两个变量)

②使用嵌套分支

(2)对应代码

package main

import (

"fmt"

)

func main() {

var month byte

var age byte

var price float64

fmt.Println("请输入游玩月份")

fmt.Scanln(&month)

fmt.Println("请输入游客的年龄")

fmt.Scanln(&age)

if month >=4 && month < = 10 {

//旺季

if age > 60 {

fmt.Printf("%v月 票价 %v 年龄 %v",month,price / 3,age )

} else if age >=18 {

//由于前面的“if age > 60”已经排除掉age >=18且age > 60的部分,

因此这里可将

“} else if age >=18 && age < 60 {”中的“&& age < 60”省略。

fmt.Printf("%v月 票价 %v 年龄 %v",month,price,age)  

} else {

fmt.Printf("%v月 票价 %v 年龄 %v",month,price / 2,age)

}

} else {

//淡季

if age > =18 && age < 60 {

fmt.Println("淡季成人 票价 40")

} else {

fmt.Println("淡季儿童和老人 票价 20")

}

}

}

(3)运行结果

根据提示输入各项数据,随输入数据的不同,结果不同。

如:

①输入游玩月份“4”,输入游客年龄“30”,输出结果为“4月 票价 60 年龄 30”

②输入游玩月份“4”,输入游客年龄“10”,输出结果为“4月 票价 30 年龄 10”

③输入游玩月份“10”,输入游客年龄“70”,输出结果为“10月 票价 20 年龄 70”

④输入游玩月份“2”,输入游客年龄“30”,输出结果为“淡季成人 票价 40 ”

⑤输入游玩月份“1”,输入游客年龄“8”,输出结果为“淡季儿童和老人 票价 20 ”

相关文章
|
IDE 程序员 Go
JupyterLab教程:程序员的笔记本神器v2.0
JupyterLab教程:程序员的笔记本神器v2.0
JupyterLab教程:程序员的笔记本神器v2.0
|
缓存 JavaScript 前端开发
JavaScript中DOM操作:新手常犯错误与避免策略
【4月更文挑战第1天】本文介绍了JavaScript中DOM操作的基础和新手常犯错误,包括频繁查询DOM、不恰当的遍历、滥用innerHTML、忽视异步与DOM状态以及过度同步更新。建议包括缓存DOM引用、注意文本节点、慎用innerHTML以防止XSS、正确处理异步和批量更新。遵循最佳实践,开发者能提升代码质量和应用性能。
508 2
|
11月前
|
自然语言处理 Python
NLTK 库
【11月更文挑战第18天】
996 11
IntelliJ IDEA 如何在控制台过滤信息
IntelliJ IDEA 如何在控制台过滤信息
861 0
|
机器学习/深度学习 自然语言处理 数据挖掘
RouteLLM:高效LLM路由框架,可以动态选择优化成本与响应质量的平衡
新框架提出智能路由选择在强弱语言模型间,利用用户偏好的学习来预测强模型胜率,基于成本阈值做决策。在大规模LLMs部署中,该方法显著降低成本而不牺牲响应质量。研究显示,经过矩阵分解和BERT等技术训练的路由器在多个基准上提升性能,降低强模型调用,提高APGR。通过数据增强,如MMLU和GPT-4评审数据,路由器在GSM8K、MMLU等测试中展现出色的性能提升和成本效率。未来将测试更多模型组合以验证迁移学习能力。该框架为LLMs部署提供了成本-性能优化的解决方案。
608 2
|
12月前
|
监控 安全 数据处理
淘宝 1688 跨境电商官方接口接入全攻略,跨境卖家必知
本攻略详述了接入1688跨境电商官方接口的全过程,涵盖注册申请、开发调试、数据处理与业务集成、安全合规及上线维护等环节,帮助开发者高效对接1688,拓展跨境业务。
1150 0
|
机器学习/深度学习 并行计算 编译器
MXNet安装教程:详细步骤与常见问题解析
【4月更文挑战第12天】本文详细介绍了MXNet深度学习框架的安装步骤,包括Python、conda和R用户的安装方法,以及GPU支持的选项。在安装过程中可能遇到网络问题、依赖冲突和GPU支持问题等,文中给出了相应解决策略。安装后,通过简单的代码示例验证MXNet是否正常工作,从而顺利完成本地环境搭建。
2274 7
|
移动开发 JavaScript 小程序
uView NumberBox 步进器
uView NumberBox 步进器
246 0
|
机器学习/深度学习
YOLOv8改进 | DAttention (DAT)注意力机制实现极限涨点
YOLOv8改进 | DAttention (DAT)注意力机制实现极限涨点
516 0
|
编解码 C++
QT 调用USB免驱摄像头
QT 调用USB免驱摄像头
654 0