当前位置: 首页 > article >正文

Go语言中的if else控制语句

if else是Go语言中最基础也最常用的条件控制语句,用于根据条件执行不同的代码块。下面我将详细介绍Go语言中if else的各种用法和特性。

1. 基本语法

1.1. 最简单的if语句

if 条件表达式 {// 条件为true时执行的代码
}

示例:

if x > 10 {fmt.Println("x大于10")
}

1.2. if-else语句

if 条件表达式 {// 条件为true时执行的代码
} else {// 条件为false时执行的代码
}

示例:

if x > 10 {fmt.Println("x大于10")
} else {fmt.Println("x不大于10")
}

1.3. if-else多分支语句

if 条件表达式1 {// 条件1为true时执行的代码
} else if 条件表达式2 {// 条件2为true时执行的代码
} else {// 所有条件都为false时执行的代码
}

示例:

if score >= 90 {fmt.Println("优秀")
} else if score >= 80 {fmt.Println("良好")
} else if score >= 60 {fmt.Println("及格")
} else {fmt.Println("不及格")
}

2. 特殊用法

2.1. 在if条件前执行简单语句

Go语言的if语句支持在条件表达式前执行一个简单的语句,通常是短变量声明,该语句声明的变量作用域仅限于if语句块内。

if 简单语句; 条件表达式 {// 代码块
}

示例:

if x := getValue(); x > 10 {fmt.Println("x大于10")
} else {fmt.Println("x值为", x)
}
// 这里不能访问x

2.2. 嵌套if语句

if语句可以嵌套使用:

if 条件1 {if 条件2 {// 代码块}
}

示例:

if x > 10 {if y > 20 {fmt.Println("x>10且y>20")}
}

3. 注意事项

1. 条件表达式不需要括号:Go语言的if条件表达式不需要用括号括起来,但代码块的花括号是必须的;

2. 花括号位置:Go语言要求if和else后面的花括号必须与条件表达式在同一行。例如:

if x > 10 {// 正确
}if x > 10 
{ // 错误,会编译失败
}

3. else必须与if的右花括号同行:

if x > 10 {// 代码
} else { // else必须这样写// 代码
}

4. 零值判断:在Go中,可以直接使用变量作为条件,它会自动判断是否为该类型的零值:

var s string
if s { // 相当于 if s != ""// ...
}var n int
if n { // 相当于 if n != 0// ...
}

http://www.lryc.cn/news/2405107.html

相关文章:

  • 【PCIe总线】-- inbound、outbound配置
  • 分布式锁实战:Redisson vs. Redis 原生指令的性能对比
  • MyBatis中foreach集合用法详解
  • react+taro 开发第五个小程序,解决拼音的学习
  • 高防IP可以防护什么攻击类型?企业网络安全的第一道防线
  • Wireshark使用教程(含安装包和安装教程)
  • Asp.Net Core基于StackExchange Redis 缓存
  • 【Linux】SSH:免密登录
  • kafka(windows)
  • 深度学习习题3
  • 勒让德多项式
  • atc abc409E
  • Mysql批处理写入数据库
  • 基于安卓的文件管理器程序开发研究源码数据库文档
  • EMC VNXe 存储系统日志收集方法
  • 嵌入式链表操作原理详解
  • 从“人找政策”到“政策找人”:智能退税ERP数字化重构外贸生态
  • 一.设计模式的基本概念
  • 以人类演示视频为提示,学习可泛化的机器人策略
  • split方法
  • SOC-ESP32S3部分:36-适配自己的板卡
  • LLMs 系列科普文(8)
  • 【明日方舟 × 红黑树】干员调度如何不掉线?算法工程的平衡魔法全揭秘!
  • Vue3 + Vite 中使用 Lodash-es 的防抖 debounce 详解
  • 机器学习基础相关问题
  • 验证负载均衡与弹性伸缩
  • Three.js中AR实现详解并详细介绍基于图像标记模式AR生成的详细步骤
  • CSS高级技巧及新增属性
  • GeoBoundaries下载行政区划边界数据(提供中国资源shapefile)
  • 《深入理解 Nacos 集群与 Raft 协议》系列四:日志复制机制:Raft 如何确保提交可靠且幂等