条件语句

用于根据不同的条件执行不同的操作。Go中的条件可以是真或假。Go支持数学中常见的比较运算符:

小于 <

小于等于 <=

大于 >

大于等于 >=

等于 ==

不等于 !=

此外,Go还支持常见的逻辑运算符:

逻辑与 && 逻辑或 || 逻辑非 ! 您可以使用这些运算符或它们的组合来创建不同决策的条件。

示例

尝试一下 x > y x != y (x > y) && (y > z) (x == y) || z

Go具有以下条件语句:

  • 使用if来指定在指定条件为真时执行的代码块
  • 使用else来指定在相同条件为假时执行的代码块
  • 使用else if来指定要测试的新条件,如果第一个条件为假
  • 使用switch来指定要执行的多个备选代码块

if语句

使用if语句来指定在条件为真时执行的一段Go代码。

语法

if 条件 {
// 如果条件为真,则执行的代码
}

请注意,if关键字要小写。大写字母(IfIF)会导致错误。

在下面的示例中,我们测试了两个值,以确定20是否大于18。如果条件为真,则打印一些文本:

示例

package main
import ("fmt") func main() {
if 20 > 18 {
fmt.Println("20 大于 18")
}
}

我们也可以测试变量:

示例

package main
import ("fmt") func main() {
x := 20
y := 18
if x > y {
fmt.Println("x 大于 y")
}
}

示例解释

在上面的示例中,我们使用了两个变量xy,测试x是否大于y(使用>运算符)。由于x为20,y为18,我们知道20大于18,所以我们打印出"x 大于 y"。

else语句

使用else语句来指定在条件为假时执行的一段代码。

语法

if 条件 {
// 如果条件为真,则执行的代码
} else {
// 如果条件为假,则执行的代码
}

使用if else语句的示例:

示例

在此示例中,时间(20)大于18,因此if条件为假。因此,我们转而执行else条件,并在屏幕上打印"晚上好"。如果时间小于18,程序将打印"白天好":

package main
import ("fmt") func main() {
时间 := 20
if 时间 < 18 {
fmt.Println("白天好。")
} else {
fmt.Println("晚上好。")
}
}

示例

在此示例中,温度为14,因此if的条件为假,因此执行else语句中的代码行:

package main
import ("fmt") func main() {
温度 := 14
if 温度 > 15 {
fmt.Println("外面温暖。")
} else {
fmt.Println("外面寒冷。")
}
}

else语句中的括号应该像} else {这样写:

示例

else的括号放在不同的行会引发错误:

package main
import ("fmt") func main() {
温度 := 14
if 温度 > 15 {
fmt.Println("外面温暖。")
} // 这将引发错误
else {
fmt.Println("外面寒冷。")
}
}

结果:

./prog.go:9:3: 语法错误:意外的 else,期望 }

else if 语句

使用 else if 语句在第一个条件为假时指定新条件。

语法:

if 条件1 {
// 如果条件1为真时执行的代码
} else if 条件2 {
// 如果条件1为假且条件2为真时执行的代码
} else {
// 如果条件1和条件2都为假时执行的代码
}

使用 else if 语句的示例:

package main

import (
"fmt"
) func main() {
time := 22
if time < 10 {
fmt.Println("早上好。")
} else if time < 20 {
fmt.Println("白天好。")
} else {
fmt.Println("晚上好。")
}
}

结果:

晚上好。

示例解释:

在上面的示例中,时间(22)大于10,因此第一个条件为假。接下来,在 else if 语句中的下一个条件也为假,因此我们转向 else 条件,因为条件1和条件2都为假,所以输出屏幕上显示 "晚上好"。

但是,如果时间为14,我们的程序将打印 "白天好"。

另一个 else if 的示例:

package main

import (
"fmt"
) func main() {
a := 14
b := 14
if a < b {
fmt.Println("a 小于 b。")
} else if a > b {
fmt.Println("a 大于 b 。")
} else {
fmt.Println("a 和 b 相等。")
}
}

结果:

a 和 b 相等。

注意:

如果条件1和条件2都为真,则仅执行条件1的代码。

嵌套的 if 语句

您可以在 if 语句内部使用 if 语句,这称为嵌套的 if

语法:

if 条件1 {
// 如果条件1为真时执行的代码
if 条件2 {
// 如果条件1和条件2都为真时执行的代码
}
} else {
// 如果条件1为假时执行的代码
}

嵌套 if 语句的示例:

package main

import (
"fmt"
) func main() {
num := 20
if num >= 10 {
fmt.Println("Num 大于等于 10。")
if num > 15 {
fmt.Println("Num 也大于 15。")
}
} else {
fmt.Println("Num 小于 10。")
}
}

结果:

Num 大于等于 10。
Num 也大于 15。

最后

为了方便其他设备和平台的小伙伴观看往期文章:

微信公众号搜索:Let us Coding,关注后即可获取最新文章推送

看完如果觉得有帮助,欢迎 **点赞、收藏、关注**

深入了解 Golang 条件语句:if、else、else if 和嵌套 if 的实用示例的更多相关文章

  1. golang 条件语句 for range 分析

    for range 作为 golang中的语法糖提供了便利操作; 对于for range 支持 的数据类型包含: 数组以及指向数组的指针 切片 字典 通道 字符串 在range的语法糖中提供了一下特殊 ...

  2. Golang基础(2):Go条件语句、switch和循环语句

    一:Go条件语句 package main import "fmt" //========go条件判断语句=== func main() { { fmt.Println(" ...

  3. Golang switch语句总结

    switch 语句基本结构 switch 条件表达式 { case 常量表达式1: 语句 1 case 常量表达式2: 语句 2 . . . case 常量表达式n: 语句 n default: 语句 ...

  4. GO语言的基本语法之变量,常量,条件语句,循环语句

    GO语言的基本语法之变量,常量,条件语句,循环语句 作为慕课网得笔记自己看 定义变量: 使用var关键字 var a, b, C bool var s1, s2 string = "hell ...

  5. Python —条件语句

    条件语句 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 可以通过下图来简单了解条件语句的执行过程: Python程序语言指定任何非0和非空(null ...

  6. php简写表达式,&& or || 缩写条件语句

    有时候学的多了, 好多小细节 都忘了 ,比如 简单的表达式, 三元表达式   ?:; $aa or $bb 表达式 等等! 写一些简单的表达式,备忘! php用&&和||缩写条件语句 ...

  7. java中的条件语句(if、if...else、多重if、嵌套if)

    Java条件语句之 if 生活中,我们经常需要先做判断,然后才决定是否要做某件事情.例如,如果考试成绩大于 90 分,则奖励一个 IPHONE 5S .对于这种"需要先判断条件,条件满足后才 ...

  8. javascript语句——条件语句、循环语句和跳转语句

    × 目录 [1]条件语句 [2]循环语句 [3]跳转语句 前面的话 默认情况下,javascript解释器依照语句的编写顺序依次执行.而javascript中的很多语句可以改变语句的默认执行顺序.本文 ...

  9. go语言条件语句 if else

    示例: if a < 5 { return 0 } else { return 1 } 关于条件语句,需要注意以下几点:  条件语句不需要使用括号将条件包含起来():  无论语句体内有几条语 ...

  10. Todd's Matlab讲义第4讲:控制误差和条件语句

    误差和残量 数值求解方程\(f(x)=0\)的根,有多种方法测算结果的近似程度.最直接的方法是计算误差.第\(n\)步迭代结果与真值\(x^\*\)的差即为第\(n\)步迭代的误差: \begin{e ...

随机推荐

  1. 【.Net Core】.Net Core 源码分析与深入理解 - 配置中心 Startup.cs (二)

    源码版本: .Net Core 3.1.14 上篇文章: [.Net Core].Net Core 源码分析与深入理解 - 入口 Program.cs (一) 注意:本篇文章主要研究的是 Startu ...

  2. Html飞机大战(十二): canvas写字(结束状态的编辑)

    好家伙,基本的功能都做完了,来补充一个结束状态的游戏结束文案   上代码: case END: //给我的画笔设置一个字的样式 //后面写出来的字都是这个样式的 context.font = &quo ...

  3. 【Azure 应用服务】Azure Function 中运行Powershell 脚本,定位 -DefaultProfile 引发的错误

    问题描述 突然之间,使用PowerShell脚本 Get-AzVirtualNetwork 获取虚拟网络信息时,如果带上  -DefaultProfile $sub 参数,就出现 Azure cred ...

  4. Rust 登上了开源头条「GitHub 热点速览」

    抱歉!上周因为出月刊工作量比较大,所以「GitHub 热点速递」暂停了一期,必须要给守着更新的读者道个歉,以后每周二的「热点速递」会按时更新,下不为例. 说回本周的热门开源项目,Rust 语言可谓是出 ...

  5. redis迁移同步工具-redis-shake

    官方文档: https://github.com/alibaba/RedisShake/wiki/快速开始:数据迁移 下载: https://github.com/alibaba/RedisShake ...

  6. Harbor 2.1.2 安装部署

    环境 首先需要准备好 Docker + Docker-Compose 环境,Docker 在 CentOS 7.x 的安装教程请参考 这篇文章,后续文章假设你已经安装好了上述环境. 安装 标准安装 首 ...

  7. 基于RocketMQ实现分布式事务(半消息事务)

    一.背景 RocketMQ的分布式事务可以称为"半消息事务". 二.原理 2.1原理 RocketMQ是靠半消息机制实现分布式事务: 事务消息:MQ 提供类似 X/Open XA ...

  8. immutable 不可改变的 mut ≈ to move = to change - 单词学习

    immutable im-不,非 + mut-改变 + -able. im 通 in able 有能力的 重点是 mut 的含义是 to change t 就是to mu 就是 change (*拉丁 ...

  9. 开发环境篇之HALCON数据结构

    开发环境篇之HALCON基础 目录 基本数据分类 图标类数据 Image(图片) Pixel:像素 Channel:通道 Domain:域 图片操作 Region(区域) Region操作 XLD(轮 ...

  10. kubectl create 与 kubectl apply的区别

    kubectl apply和kubectl create都是Kubernetes(k8s)中用于创建或更新资源的命令,但它们在使用方式.功能和灵活性上存在一些区别. 声明式与命令式: kubectl ...