第4章 流程控制-分支结构

引言

【1】流程控制的作用:

流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。

【2】控制语句的分类:

控制语句分为三类:顺序、选择和循环。

“顺序结构”代表“先执行a,再执行b”的逻辑。

“条件判断结构”代表“如果…,则…”的逻辑。

“循环结构”代表“如果…,则再继续…”的逻辑。

三种流程控制语句就能表示所有的事情!不信,你可以试试拆分你遇到的各种事情。这三种基本逻辑结构是相互支撑的,它们共同构成了算法的基本结构,无论怎样复杂的逻辑结构,都可以通过它们来表达。所以任何一种高级语言都具备上述两种结构。

本章是大家真正进入编程界的“门票”。

【3】流程控制的流程:


if分支

单分支

【1】基本语法

if 条件表达式 {

逻辑代码

}

当条件表达式为ture时,就会执行得的代码。

PS:条件表达式左右的()可以不写,也建议不写

PS:if和表达式中间,一定要有空格

PS:在Golang中,{}是必须有的,就算你只写一行代码。


【2】代码练习:

package main
import "fmt"
func main() {
	//实现功能:如果库存小于30个,提示:库存不足:
	// var count int = 100
	//单分支:
	// if count < 30 {
	// 	fmt.Println("对不起,库存不足!")
	// }

	//if后面表达式,返回结果一定是true或者false,
	//如果返回结果为true的话,那么{}中的代码就会执行
	//如果返回结果为false的话,那么{}中的代码就不会执行
	//if后面一定要有空格,和条件表达式分隔开来
	//{}一定不能省略
	//条件表达式左右的()是建议省略的
	//在golang里,if后面可以并列的加入变量的定义:
	if count := 20; count < 30 {
		fmt.Println("对不起,库存不足!")
	}
}

双分支

【1】基本语法

if 条件表达式 {

逻辑代码1

} else {

逻辑代码2

}

当条件表达式成立,即执行逻辑代码1,否则执行逻辑代码2。{}也是必须有的。

PS:下面的格式是错误的:

if 条件表达式 {

逻辑代码1

}

else {

逻辑代码2

}

PS:空格加上,美观规范

【2】代码练习:

package main

import "fmt"
func main()  {
	//实现功能:如果口罩的库存小于30个,提示:库存不足,否则提示:库存充足
	//定义口罩的数量:
	var count int = 80
	if count < 30 {
		fmt.Println("对不起,库存不足!")
	} else {
		fmt.Println("库存充足")
	}
	//双分支一定会二选一走其中一个分支。
}

多分支

【1】基本语法

if 条件表达式1 {

逻辑代码1

} else if 条件表达式2 {

逻辑代码2

}

.......

else {

逻辑代码n

}

【2】代码练习:

package main

import "fmt"
func main()  {
	//实现功能:根据给出的学生分数,判断学生的等级:
	// >=90  -----A
	// >=80  -----B
	// >=70  -----C
	// >=60  -----D
	// <60   -----E
	//方式1:利用if单分支实现:
	//定义一个学生的成绩:
	var score int = 19
	// if score > 90 {
	// 	fmt.Println("您的成绩为A级别")
	// }
	// if score >= 80 && score < 90 {
	// 	fmt.Println("您的成绩为B级别")
	// }
	// if score >= 70 && score < 80 {
	// 	fmt.Println("您的成绩为C级别")
	// }
	// if score >= 60 && score < 70 {
	// 	fmt.Println("您的成绩为D级别")
	// }
	// if score < 60 {
	// 	fmt.Println("您的成绩为E级别")
	// }

	//上面方式1利用多个单分支拼凑出多个选择,多个选择是并列的,依次从上而下顺序执行,即使走了第一个分支,那么其它分支也是需要判断
	//方式2:多分支:优点:如果已经走了一个分支了,那么下面的分支就不会再去判断执行了
	if score > 90 {
		fmt.Println("您的成绩为A级别")
	} else if score >= 80 { 
		fmt.Println("您的成绩为B级别")
	} else if score >= 70 {
		fmt.Println("您的成绩为C级别")
	} else if score >= 60 {
		fmt.Println("您的成绩为D级别")
	} else {
		fmt.Println("您的成绩为E级别")
	}
}

switch分支

【1】基本语法:

switch 表达式 {

case 值1,值2,.….:

语句块1

case 值3,值4,...:

语句块2

....

default:

语句块

}

【2】代码练习:

package main

import "fmt"
func main()  {
	//实现功能:根据给出的学生分数,判断学生的等级:
	// >=90  -----A
	// >=80  -----B
	// >=70  -----C
	// >=60  -----D
	// <60   -----E
	//给出一个学生分数:
	//根据分数判断等级:
	//switch后面是一个表达式,这个表达式的结果依次跟case进行比较,满足结果的话就执行冒号后面的代码。
	//default是用来“兜底”的一个分支,其它case分支都不走的情况下就会走default分支
	//default分支可以放在任意位置上,不一定非要放在最后。
	var score int = -10
	switch score / 10 {
	case 10:
		fmt.Println("您的成绩为A级别")
	case 9:
		fmt.Println("您的成绩为B级别")
	case 8:
		fmt.Println("您的成绩为C级别")
	case 7:
		fmt.Println("您的成绩为D级别")
	case 6:
		fmt.Println("您的成绩为E级别")
	case 5:
		fmt.Println("您的成绩为E级别")
	case 4:
		fmt.Println("您的成绩为E级别")
	case 3:
		fmt.Println("您的成绩为E级别")
	case 2:
		fmt.Println("您的成绩为E级别")
	case 1:
		fmt.Println("您的成绩为E级别")
	case 0:
		fmt.Println("您的成绩为E级别")
	default :
		fmt.Println("您的成绩有误")
	}
}

参考源码:「链接」

参考原文:cyz

展开阅读全文

页面更新:2024-03-30

标签:分支   流程   结构   表达式   语句   逻辑   级别   条件   成绩   代码

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top