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 {

	}
相关推荐
像风一样自由202014 小时前
Go语言入门指南-从零开始的奇妙之旅
开发语言·后端·golang
kgduu17 小时前
go-ethereum之rpc
开发语言·rpc·golang
古城小栈1 天前
Go 1.25 发布:性能、工具与生态的全面进化
开发语言·后端·golang
Ryan ZX1 天前
【Go语言基础】序列化和反序列化
开发语言·后端·golang
资深web全栈开发2 天前
如何正确使用缓存:常见陷阱与最佳实践
redis·缓存·golang
枫子有风2 天前
Go语言流程控制
android·java·golang
唐僧洗头爱飘柔95272 天前
【GORM(3)】Go的跨时代ORM框架!—— 数据库连接、配置参数;本文从0开始教会如何配置GORM的数据库
开发语言·数据库·后端·golang·gorm·orm框架·dsn
Jonathan Star2 天前
在 Go 语言中,模板字符串
开发语言·后端·golang
想搞艺术的程序员2 天前
Go Channel 深度指南:规范、避坑与开源实践
golang
巴塞罗那的风2 天前
Eino框架快速搭建出行agent(二)引入12306 mcp
人工智能·golang·mcp