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 {

	}
相关推荐
码士集团小青14 小时前
从对标 Java 到对标 Go:Native AOT 的“无痛化“之路,走到哪一站了?
golang
右耳朵猫AI14 小时前
Go周刊2026W36 | Go 1.27.1 发布、TinyGo 0.42、HTTP/2 原生迁入 net/http、quic-go 0.62
redis·http·golang
大树911 天前
把 Java 项目从手动 SCP 升级到 Gitee Go 自动部署:一份踩坑实录
java·golang·gitee
lmy_loveF1 天前
go 切换go version 版本
开发语言·后端·golang
智购科技自动贩卖机1 天前
自动售货机嵌入式系统安全加固实践:从Go语言国密算法到硬件防拆的工程化落地
大数据·人工智能·后端·安全·golang·系统安全
妙码生花2 天前
使用git更新ai-go-admin框架
前端·人工智能·git·golang·typescript·php
王的宝库2 天前
GO常用标准库包
开发语言·后端·golang
平头哥AI2 天前
Day 13 | 一个函数回两个值:Go 的 error 是从哪冒出来的
开发语言·后端·golang
我不会起名字3222 天前
一天一道算法题(29):单调栈
java·数据结构·python·算法·leetcode·golang·单调栈