GO语言语法---if语句

文章目录

  • [1. 基本语法](#1. 基本语法)
    • [1.1 单分支](#1.1 单分支)
    • [1.2 双分支](#1.2 双分支)
    • [1.3 多分支](#1.3 多分支)
  • [2. Go特有的if语句特性](#2. Go特有的if语句特性)
    • [2.1 条件前可以包含初始化语句](#2.1 条件前可以包含初始化语句)
    • [2.2 条件表达式不需要括号](#2.2 条件表达式不需要括号)
    • [2.3 必须使用大括号](#2.3 必须使用大括号)
    • [2.4 判断语句所在行数控制](#2.4 判断语句所在行数控制)

Go语言的if语句用于条件判断,与其他C风格语言类似,但有一些独特的语法特点。

1. 基本语法

go 复制代码
if condition {
    // 条件为true时执行的代码
}

1.1 单分支

以下代码表示只有一个判断,如果x > 5则执行大括号中的内容。否则持续继续往后执行。

go 复制代码
// 单分支
    if x > 5 {
        fmt.Println("x大于5")
    }

1.2 双分支

以下代码也只有一个判断,如果x > 5则执行第一个大括号中的内容。否则持续else后面的大括号中的内容。

go 复制代码
    // 双分支
    if x > 15 {
        fmt.Println("x大于15")
    } else {
        fmt.Println("x不大于15")
    }

1.3 多分支

以下代码有多个判断,如果x < 5则执行第一个大括号中的内容。执行完第一个括号中的内容则跳出if语句,不再进行后续的判断。如果不满足第一个判断x < 5,则进入第二次判断,第二次判断满足则执行第二次大括号中的内容,执行完跳出if语句。以此类推,如果所有条件都不满足,则执行else后大括号的内容。

注意:这里的else可以不写(效果等同于else中的语句为空),不写则当所有条件都不符合时,不执行任何内容。

go 复制代码
    // 多分支
    if x < 5 {
        fmt.Println("x小于5")
    } else if x < 15 {
        fmt.Println("x在5到15之间")
    } else {
        fmt.Println("x大于等于15")
    }

2. Go特有的if语句特性

2.1 条件前可以包含初始化语句

go 复制代码
// 用分号分隔
if y := 11; y > 10 {
    fmt.Println("y大于10:", y)
}

2.2 条件表达式不需要括号

条件表达式的括号可加可不加,但是这里推荐不加,因为go的源码也是没有加括号的。写法和作者保持一致。

go 复制代码
if x > 5 {  // 正确
// if (x > 5) {  // 也可以,但不推荐

2.3 必须使用大括号

在c语言之类的语言中,如果if之后的语句只有一句是可以不使用大括号的,但是GO语言强制使用括号。其实这也很好的规范了开发者的代码风格,在很多公司中if后面不加大括号是无法通过Review。

go 复制代码
if x > 5 
    fmt.Println("x大于5")  // 错误:缺少大括号

2.4 判断语句所在行数控制

go 复制代码
	// 错误语法示例
    if x < 5 {
        fmt.Println("x小于5")
    } 
	else if x < 15 {
        fmt.Println("x在5到15之间")
    } else {

	}


	// 正确语法示例
	if x < 5 {
        fmt.Println("x小于5")
    } else if x < 15 {
        fmt.Println("x在5到15之间")
    } else {

	}
相关推荐
linweidong1 天前
GO后端开发内存管理及参考答案
golang·内存管理·trace·三色标记法·go面试·go面经·go gc
fashia1 天前
Java转Go日记(六十二):Raft
开发语言·后端·golang·go
sjg200104142 天前
golang学习随便记x[2,3]-字符串处理与正则表达式
开发语言·学习·golang
神奇萝卜头2 天前
GO语言使用gorm的dbresolver插件实现数据库读写分离
数据库·golang·gorm
海风极客2 天前
《Go小技巧&易错点100例》第三十五篇
开发语言·后端·golang
ahhhhaaaa-2 天前
【学习笔记】QUIC
数据库·笔记·学习·阿里云·golang·云计算
张声录13 天前
Windows 环境下 Golang 与 Vosk-API 语音识别开发环境搭建指南
windows·golang·语音识别
IsPrisoner3 天前
Go 语言实现高性能 EventBus 事件总线系统(含网络通信、微服务、并发异步实战)
开发语言·微服务·golang