写点什么

Go 语言入门 03—条件语句

作者:良猿
  • 2022-10-21
    湖北
  • 本文字数:2028 字

    阅读完需:约 1 分钟

Go语言入门03—条件语句

条件语句

条件语句就是根据不同的条件执行不同的代码。


示意图:


if 语句

if 语句用于判断某个条件是否满足,当条件满足时则执行 if 语句块中的代码。


语法:


if 条件表达式 {   // 当条件表达式为true时执行}
复制代码


代码示例:


package main
import "fmt"
func main() { score := 90 if score >= 90 { fmt.Println("优秀") }}
复制代码


因为表达式score >= 90的结果为 true,则会在控制台打印出优秀


运行结果:


if...else

在 if 条件语句中,如果表达式为 true 则会执行 if 语句块中的代码,在 if 后还可以增加 else 语句块,则表示当 if 条件为 false 时执行 else 中的代码。


语法:


if 条件表达式 {   // 当条件表达式为true时执行} else {    // 当条件表达式为false时执行}
复制代码


代码示例:


package main
import "fmt"
func main() { score := 80 if score >= 90 { fmt.Println("优秀") } else { fmt.Println("一般") }}
复制代码


score = 80,由于表达式score >= 90结果为 false,则不会执行 if 中的语句块,会转而执行 else 中的语句块。


运行结果:



除了直接使用if...else之外,还可以在 else 后面继续增加 if 条件判断。


语法:


if 条件表达式1 {   // 当条件表达式1为true时执行} else if 条件表达式2 {    // 当条件表达式2为true时执行} else {    // 当条件表达式1和2都不为true时执行}
复制代码


代码示例:


package main
import "fmt"
func main() { score := 80 if score >= 90 { fmt.Println("优秀") } else if score >= 80 { fmt.Println("良好") } else { fmt.Println("一般") }}
复制代码


运行结果:



if...else if判断没有数量限制,可一直添加else if判断,但是在实际开发中不建议写太多,如果有特别多得条件需要判断,可使用 switch 进行判断

if 嵌套

if 嵌套表示可以在 if 语句块中添加 if 判断


语法:


if 条件表达式1 {    if 条件表达式2 {        // 当条件表达式2为true时执行    } else {        // 当条件表达式2为false时执行    }} else {    // 当条件表达式1为false时执行}
复制代码


代码示例:


package main
import "fmt"
func main() { score := 90 if score >= 90 { if score >= 95 { fmt.Println("非常优秀") } else { fmt.Println("优秀") } } else { fmt.Println("一般") }}
复制代码


score = 90,则第一层 if 判断score >= 90为 true,则进入到第一层 if 语句块中,在第一层语句块中score >= 95为 false,则执行 else 中的代码,最后输出为优秀。


运行结果:



if 嵌套也可以无限制的嵌套,但是在实际开发中同样不建议嵌套太多层。

switch

switch 语句是根据变量的值执行不同的 case,在执行的过程中,会从第一个 case 开始判断,直到碰到一个符合条件的 case 为止,然后执行该 case 中的语句,不同于 java 的是不需要在每一个 case 中添加 break 语句,go 语言默认情况下 case 后面自带 break 语句。


语法:


switch 变量 {    case 变量1:        // 当变量和变量1相等时执行    case 变量2:        // 当变量和变量2相等时执行    default:        // 当没有符合的case时执行}
复制代码


代码示例:


package main
import "fmt"
func main() { score := 80 switch score { case 90:fmt.Println("优秀") case 80:fmt.Println("良好") case 70:fmt.Println("一般") default:fmt.Println("默认") }}
复制代码


运行结果:



switch 的变量可以时任意类型,而 case 的变量可以是相同类型的任意值,类型不局限,但是 switch 和 case 的类型必须时相同的类型,同样 case 还可以为表达式。


代码示例:


package main
import "fmt"
func main() { score := 80 switch { case score >= 90:fmt.Println("优秀") case score >= 80:fmt.Println("良好") case score >= 70:fmt.Println("一般") default:fmt.Println("默认") }}
复制代码


当 case 为表达式时,则 switch 中就不需要再写变量。


运行结果:


fallthrough

由于在 go 语言中每一个 case 后面都会默认加上 break,所以每次匹配都执行其中的一个 case,但是如果需要执行后面的 case,则可以使用 fallthrough,使用 fallthrough 会强制执行后面的 case 语句,fallthrough 不会判断下一条 case 的表达式结果是否为 true。


代码示例:


package main
import "fmt"
func main() { score := 80 switch { case score >= 90: fmt.Println("优秀") fallthrough case score >= 80: fmt.Println("良好") fallthrough case score >= 70: fmt.Println("一般") fallthrough default:fmt.Println("默认") }}
复制代码


由于在每个 case 后面都增加了 fallthrough,则当case score >= 80匹配时,除了执行该 case 中的语句外,还会直接之后它后面的所有 case,并且不会判断 case 是否为 true。


运行结果:



发布于: 刚刚阅读数: 3
用户头像

良猿

关注

还未添加个人签名 2019-02-13 加入

还未添加个人简介

评论

发布
暂无评论
Go语言入门03—条件语句_Go_良猿_InfoQ写作社区