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 {

	}
相关推荐
Chandler2422 分钟前
Go语言 GORM框架 使用指南
开发语言·后端·golang·orm
wktomo2 小时前
GO语言学习(二)
学习·golang
你怎么知道我是队长2 小时前
Go语言语法---输入控制
golang
蚂蚁在飞-2 小时前
Golang基础知识—cond
开发语言·后端·golang
李迟2 小时前
Golang实践录:在go中使用curl实现https请求
开发语言·golang·https
BUG制造机.3 小时前
Go 语言的 GMP 模型
golang
张帅涛_6663 小时前
golang读、写、复制、创建目录、删除、重命名,文件方法总结
golang
运维-大白同学3 小时前
go-数据库基本操作
开发语言·数据库·golang
张帅涛_6663 小时前
golang中的反射示例
golang