多分支应用案例|学习笔记

简介: 快速学习多分支应用案例

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

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


多分支应用案例

内容介绍:

一、多分支案例演示2

二、多分支案例演示3

三、多分支案例演示4


一、多分支案例演示2

func main() {

var b bool = true

if b == false {

fmt.Println("a")

} else if b {

fmt.Println("b")

} else if !b {

fmt.Println("c")

} else

{

fmt.Println("d")

}

}

//输出结果是b。

Q:如果写成 b = false,能编译通过吗?如果能,结果是?

(1)代码分析:

func main() {

var b bool = true    

一段bool类型的代码b = true

if b == false {

fmt.Println("a")  

若b==false,执行a语句,而 false≠true,故不执行a语句

} else if b {

fmt.Println("b")  b==true

故执行b语句

} else if !b {

fmt.Println("c")!

b表示对b代码取反,则不执行

} else  {

fmt.Println("d")  

不执行

}

}

(2)运行结果分析

A:编译无法通过。

按照 Java 语言、PSP语言、C 语言或 C++语言等编程语言逻辑,代码的含义可看作将 false 赋值给b,则仍旧可以编译,最终输出结果为c;

而在Golang语言中,为了避免由于代码的多种写法产生歧义,if后的内容必须是条件表达格式,不能是赋值语句,编译无法通过。

(3)学习目标

强化关于 Go 语言中,分支控制中,if 后必须是条件表达格式,不能是赋值语句。


二、分支控制if-else案例演示3

求 ax2+bx+c=0方程的根。a、b、c分别为函数的参数,如果:b2-4ac>0,则有两个解;b2-4ac=0,则有一个解;b2-4ac<0,则无解;

提示1:x1=(-b+sqrt(b2-4ac))/2a

x2=(-b-sqrt(b2-4ac))/2a

提示2:math.Sqrt(num);需要引入math包

测试数据:3,100,6

(1)分析思路:

①abc是3个 float64

②使用到给出的数学公式

③题目中有多种条件可能,应使用到多分支

④使用 math.Squr 方法

查询使用手册的方法:

百度中输入 Go 官方文档搜索,点击打开“Go语言标准库文档中文版|Go语言中文网| Golang 中文社区|Go...”,选择 math 包,选择其中的 func Sqrt(x float64)float64函数,查询其应用场景,即“返回x的二次方根”

(2)对应代码

package main

import {

"fmt"

"math"

)

func main() {

var a float64 = 3.0

var b float64 = 100.0

var c float64 = 6.0

var a float64 = 3.0

m :=b*b - 4 * a * c

//多分支判断      

if m > 0 {

x1 :=(-b + math.Sqrt(m))/2 * a

x2 :=(-b - math.Sqrt(m))/2 * a

fmt.Printf("x1=%v x2=%v",x1,x2)

} else  if m == 0 {

x1 :=(-b + math.Sqrt(m))/2 * a

fmt.Printf("x1=%v",x1)

} else {

fmt.Println("无解...")//c

}

}

(3)代码运行输出结果:

x1 =-0.5409755150261972 x2 =-299.4590244849738

说明该赋值条件下,m>0。

改变赋值,输出结果会发生变化,如其他条件不变,对b赋值为1.0,对c赋值为10.0,则输出结果为“无解”;对a赋值为2.0,对b赋值为4.0,对c赋值为2.0,输出结果为 x1 =-4。

学习目标

将代码与数学公式整合,并学会利用 math 包中的相关函数编写多分支控制代码。


三、分支控制 if-else 案例演示4

大家都知道,男大当婚,女大当嫁。那么女方家长要嫁女儿,一定会提出一定的条件:高:180cm以上;富:财富1千万以上;帅:是。条件从控制台输入。

1.如果这三个条件同时满足,则:“我一定要嫁给他!!!”

2.如果这三个条件有为真的情况,则:“嫁吧,比上不足比下有余。”

3.如果三个条件都不满足,则:“不嫁....”

var height int32 | var money float32 | var handsome bool

1.思路分析

①应该设计3个变量 var height int32 | var money float32 | var handsome bool

②需要从中断输入 fmt.Scanln

③使用多分支控制  if--else if--else

2.对应代码

package main

import (

"fmt"

_"math"

)

func main() {

var height int32

var money float32

var handsome bool

fmt.Println("请输入身高(厘米)")

fmt.Scanln(&height)

fmt.Println("请输入财富(千万)")

fmt.Scanln(&money)

fmt.Println("请输入是否帅(true/false)")

fmt.Scanln(&handsome)

if height > 180 && money >1.0 && handsome  {

fmt.Println("我一定要嫁给他!!!")

} else if height > 180 || money >1.0 || handsome {

fmt.Println("嫁吧,比上不足比下有余")

} else

fmt.Println("不嫁....")

}

}

注:

①_"math"表示忽略 math 包;

②height 本身即为 bool,故该处条件格式无需写成“height == bool”

3.代码运行输出结果

依照提示分别输入相应的身高值、财富值、是否帅(true/false),输出最终结果。

①“身高(厘米)”为190,“财富(千万)”为2,“是否帅(true/false)”为true,则最终输出结果为“我一定要嫁给他!!!”

②“身高(厘米)”为190,“财富(千万)”为0.2,“是否帅(true/false)”为false,则最终输出结果为“嫁吧,比上不足比下有余。”

②“身高(厘米)”为140,“财富(千万)”为0.1,“是否帅(true/false)”为false,则最终输出结果为“不嫁....”

相关文章
|
11月前
|
测试技术 Linux 开发工具
Git之分支与版本->课程目标及知识点的应用场景,分支的场景应用,标签的场景应用
Git之分支与版本->课程目标及知识点的应用场景,分支的场景应用,标签的场景应用
67 0
怎样在GitHub上建立仓库、以及怎样实现分支代码的合并。保姆级别的教程
这篇文章是一份详细的GitHub使用教程,介绍了如何在GitHub上创建仓库、创建分支、编辑和发布更改内容、发起拉取请求以及合并分支的操作步骤。
怎样在GitHub上建立仓库、以及怎样实现分支代码的合并。保姆级别的教程
|
6月前
|
开发工具 git
深入探索Git的高级技巧与神奇操作(分支,高效合并)
深入探索Git的高级技巧与神奇操作(分支,高效合并)
310 0
|
6月前
|
前端开发 数据可视化 开发工具
前端git必备技能,如何合并分支以及出现合并冲突后如何解决
前端git必备技能,如何合并分支以及出现合并冲突后如何解决
111 0
|
11月前
|
运维 测试技术 开发工具
git的分支及标签使用结合全网最详细的情景演示
git的分支及标签使用结合全网最详细的情景演示
306 0
|
Go 项目管理 开发工具
Git的核心概念:探索Git中的提交、分支、合并、标签等核心概念,深入理解其作用和使用方法
Git的核心概念:探索Git中的提交、分支、合并、标签等核心概念,深入理解其作用和使用方法
168 0
|
开发工具 git
443:在本地新建分支的踩坑指南
443:在本地新建分支的踩坑指南
|
安全 PHP Apache
IF 分支|学习笔记
快速学习 IF 分支
IF 分支|学习笔记
|
Java 大数据 Scala
多分支|学习笔记
快速学习多分支。
117 0
多分支|学习笔记
|
Go iOS开发 开发者
多分支基本使用|学习笔记
快速学习多分支基本使用
多分支基本使用|学习笔记