Golang从入门到精通(五):Golang控制语句之if/else
来源:互联网 发布:黑客业务网站源码 编辑:程序博客网 时间:2024/05/22 19:38
if语句
if 是用于测试某个条件(布尔型或逻辑型)的语句,如果该条件成立,则会执行 if 后由大括号括起来的代码块,否则就忽略该代码块继续执行后续的代码。
if condition { // do something }
if-else结构定义
如果存在第二个分支,则可以在上面代码的基础上添加 else 关键字以及另一代码块,这个代码块中的代码只有在条件不满足时才会执行。if 和 else 后的两个代码块是相互独立的分支,只可能执行其中一个。
if condition { // do something } else { // do something }
多分支if-else结构定义
如果存在第三个分支,则可以使用下面这种三个独立分支的形式:
if condition1 { // do something } else if condition2 { // do something else }else { // catch-all or default}
else-if
分支的数量是没有限制的,但是为了代码的可读性,还是不要在 if 后面加入太多的 else-if
结构。如果你必须使用这种形式,则把尽可能先满足的条件放在前面。
即使当代码块之间只有一条语句时,大括号也不可被省略(尽管有些人并不赞成,但这还是符合了软件工程原则的主流做法)。
格式规则
Go语言中条件语句不需要圆括号。但是分支中必须有大括号。
Go语言条件语句中可以用:=
初始化一个变量,不过需要记住,这个变量是局部变量,该变量的作用域仅在if范围之内。
Go语言里面对if/else
格式对齐要求很严格,如果需要if/else
组合,则需要在if语句结束的大括号后面就跟上else。
关键字 if 和 else 之后的左大括号{
必须和关键字在同一行,如果你使用了 else-if 结构,则前段代码块的右大括号}
必须和 else-if 关键字在同一行。这两条规则都是被编译器强制规定的。
例如,下面的if-else代码段是非法的:
if x{}else { // 非法!!!}
代码示例
我们使用if来完成一个简单的判断程序。
package mainimport "fmt"func main() { // 基本的例子 if 7%2 == 0 { fmt.Println("7 is even") } else { fmt.Println("7 is odd") } // 只有if条件的情况 if 8%4 == 0 { fmt.Println("8 is divisible by 4") } // if条件可以包含一个初始化表达式,这个表达式中的变量 // 是这个条件判断结构的局部变量 if num := 9; num < 0 { fmt.Println(num, "is negative") } else if num < 10 { fmt.Println(num, "has 1 digit") } else { fmt.Println(num, "has multiple digits") }}
阅读全文
0 0
- Golang从入门到精通(五):Golang控制语句之if/else
- Golang从入门到精通(六):Golang控制语句之for
- Golang从入门到精通(七):Golang控制语句之switch
- Golang从入门到精通(一):Golang介绍
- Golang从入门到精通(三):Golang数据类型
- Golang从入门到精通(八):Golang数组
- Golang从入门到精通(九):Golang字符串
- Golang从入门到精通(十):Golang函数
- Golang从入门到精通(十一):Golang方法
- Golang从入门到精通(十四):Golang结构体
- Golang从入门到精通(十五):Golang指针
- Golang从入门到精通(十六):Golang接口
- Golang从入门到精通(十七):Golang反射
- Golang从入门到精通(十二):Golang复合数据之slice
- Golang从入门到精通(十三):Golang复合数据之map
- Golang从入门到精通(十八):Golang并发编程之Goroutine
- Golang从入门到精通(十九):Golang并发编程之Channel
- Golang从入门到精通(二十):Golang错误处理之error
- C语言
- 什么是SpringBoot
- 谷歌浏览器google chrome快捷键大全
- pygame---精灵
- 基于TableStore(表格存储)构建简易海量Topic消息队列
- Golang从入门到精通(五):Golang控制语句之if/else
- 从excel 复制表格到word(原本,格式不变)
- Docker使用tensorflow serving部署mnist模型
- MAC TomCat配置流程
- RPM安装命令总结
- P12,JKS,CER,RFX,PEM转换速记
- 【Ray Tracing in One Weekend】(ch7)漫反射材质
- GreenDao3.0查询方法积累
- 使用腾讯云 GPU 学习深度学习系列之一:传统机器学习的回顾