Go语言流程控制(六)
go语言的流程控制主要有if , for和switch。
if else(分支结构)
go语言的if判断:
func main() {
score:=65
if score>=90{
fmt.Println("A")
}else if score>=80{
fmt.Println("B")
}else{
fmt.Println("C")
}
}
需要注意的两点:
1. 表达式不可以使用 ()
2. 起始花括号必须紧跟表达式后面,不可以另起一行
除此之外,if 判断写法还有另一种写法:
func main() {
if score:=65; score>=90{
fmt.Println("A")
}else if score>=80{
fmt.Println("B")
}else{
fmt.Println("C")
}
fmt.Println(score) // 报错,获取不到score
}
这种写法是把变量的定义写在表达式里了,这样写的作用是把变量定义在了局部。
for(循环结构)
for循环结构与其他语言也差不多:
for 初始语句;条件表达式;结束语句{
循环体语句
}
需要注意:
1. for后面不可以加 ()
2.花括号与if中的一样,不可以另起一行
例子:
func main() {
for i:=0;i<10;i++{
fmt.Println(i)
}
}
for循环的初始语句可以被忽略,但是初始语句后的分号必须要写,例如:
func main() {
i:=0
for ;i<10;i++{
fmt.Println(i)
}
}
for循环的初始语句和结束语句都可以省略,例如:
func main() {
i:=0
for i<10{
fmt.Println(i)
i++
}
}
switch case
基本用法:
func main() {
week:=3
switch week {
case 0:
fmt.Println("周日")
case 1:
fmt.Println("周一")
case 2:
fmt.Println("周二")
case 3:
fmt.Println("周三")
case 4:
fmt.Println("周四")
case 5:
fmt.Println("周五")
default:
fmt.Println("周六")
}
}
每个switch只能有一个default
一个分支可以有多个值,多个case值中间使用英文逗号分隔:
func main() {
num:=1
switch num {
case 1,3,5,7,9:
fmt.Println("这是奇数")
case 2,4,6,8,0:
fmt.Println("这是偶数")
default:
fmt.Println(num)
}
}
也可以把赋值放在switch里:
func main() {
switch num:=1; num {
case 1,3,5,7,9:
fmt.Println("这是奇数")
case 2,4,6,8,0:
fmt.Println("这是偶数")
default:
fmt.Println(num)
}
}
分支还可以使用表达式,这时候switch语句后面不需要再跟判断变量。例如:
func main() {
score:=90
switch {
case score>=90:
fmt.Println("优秀")
case score>=80:
fmt.Println("良好")
case score>=60:
fmt.Println("及格")
}
}
fallthrough 可以执行满足条件的case的下一个case:
func main() {
b:=true
switch b {
case true:
fmt.Println(1)
fallthrough
case false:
fmt.Println(2)
}
}
如上,不加 fallthrough 只打印 1,加上 fallthrough 打印 1 和 2
Go语言流程控制(六)的更多相关文章
- 04. Go 语言流程控制
Go 语言流程控制 流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的"经脉". Go 语言的常用流程控制有 if 和 for,而 switch 和 ...
- C语言--流程控制
一.流程控制 1.顺序结构 *默认的流程结构,按照书写顺序执行每一条语句 2.选择结构 *对给定的条件进行判断,再根据判断结果来决定执行那一段代码 3.循环结构 *在给定条件成立的情况下,反复执行某一 ...
- 9. Go语言—流程控制
一.流程控制语法 if condition_1{ }else if condition_2{ }else if condition_3{ }else{ } 二.switch分支 package mai ...
- Go语言( 流程控制)
流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的“经脉”. Go语言中最常用的流程控制有if和for,而switch和goto主要是为了简化代码.降低重复代码而生的结 ...
- Go语言 - 流程控制 if else | for | switch case
流程控制 流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的“经脉”. Go语言中最常用的流程控制: if | for | switch | goto// switch ...
- 07-C语言流程控制if、switch
目录: 一.流程控制 条件分支 if else 二.流程控制 开关分支 switch 回到顶部 一.流程控制 条件分支 1.语法格式:if(表达式1){ //表达式1为真(非0时),执行的语句部分. ...
- Go语言流程控制
1.条件语句 几个注意点和C#不一样的. { } else { } ① 条件语句不需要使用括号将条件包含起来 a<5 ,C#必须有() ②无论语句体内有几条语句,花括号{}都是必须存在的:C#如 ...
- C语言流程控制
顺序结构 顺序结构是最常用的结构,即从上到下的执行语句. int num=5; num++; num=13; 条件结构 条件结构是当表达式为真的时候执行语句块,C语言提供了两种条件结构 if...el ...
- [C语言]流程控制, 复合赋值, 优先级, 循环控制
---------------------------------------------------------------------------------------- //单一判断 ) { ...
随机推荐
- objdump命令解析
[objdump] 相关链接: 实例分析objdump反汇编用法 - 在路上 - CSDN博客 https://blog.csdn.net/u012247418/article/details/80 ...
- ZAP-Queries【luogu3455】
题目大意 有不超过\(50000\)个询问,每次询问有多少正整数对\(x\),\(y\),满足\(x\leqslant a\),\(y \leqslant b\),并且\(gcd(x,y)=c\).其 ...
- Java 注解方式校验请求参数
1. 参数校验常用注解 注解 验证的数据类型 备注 Null 任意类型 参数值必须是 Null NotNull ...
- Misc套路记录
1.对于给定的二维码图片不能直接扫描出来的可以进行反色在进行扫描,反色可以直接选中图片然后就会进行反色.2.局域网中抓取的数据包的加密方式可能是aes加密.3.凯撒加密可能是变种的凯撒加密,可能奇数偶 ...
- (七)C语言之顺序结构
- Java中的基本数据类型和引用类型
一.基本数据类型: byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0 short:短整型,在内存中占16位,即2个字节,取值范围-32768 ...
- What happens in an async method
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/async/task-asynchronous-pr ...
- ping包的checksum校验和
PING包发送里面有一个比较关键的就是checksum即校验和 checksum本来就是ICMP包内的数据 怎么又从ICMP包开始计算?后来看了一下文档,就是就算ICMP的时候checksum本身 的 ...
- 一、基础篇--1.2Java集合-HashMap死循环问题
为什么HashMap会出现死循环 首先,我们知道java的HashMap不是线程安全的.多线程下应该使用ConcurrentHashMap. HashMap底层是基于动态数组和单向链表(JDK1.7, ...
- springboot备忘
1.springboot中有ApplicationRunner类,如果项目中的启动类名称也是ApplicationRunner,单元测试时需要注意:import不要import到springboot的 ...