1.1.1. Go 语言条件语句:

条件语句需要开发者通过指定一个或多个条件,并通过测试条件是否为 true 来决定是否执行指定语句,并在条件为 false 的情况在执行另外的语句。
Go 语言提供了以下几种条件判断语句:

if 语句 if 语句 由一个布尔表达式后紧跟一个或多个语句组成。

Go 编程语言中 if 语句的语法如下:
• 可省略条件表达式括号。
• 持初始化语句,可定义代码块局部变量。
• 代码块左 括号必须在条件表达式尾部。
if 布尔表达式 { / 在布尔表达式为 true 时执行 / }
if 在布尔表达式为 true 时,其后紧跟的语句块执行,如果为 false 则不执行。

  1. x := 0
  2. // if x > 10 // Error: missing condition in if statement
  3. // {
  4. // }
  5. if n := "abc"; x > 0 { // 初始化语句未必就是定义变量, 如 println("init") 也是可以的。
  6. println(n[2])
  7. } else if x < 0 { // 注意 else if 和 else 左大括号位置。
  8. println(n[1])
  9. } else {
  10. println(n[0])
  11. }

*不支持三元操作符(三目运算符) “a > b ? a : b”。


实例:

  1. package main
  2. import "fmt"
  3. func main() {
  4. /* 定义局部变量 */
  5. var a int = 10
  6. /* 使用 if 语句判断布尔表达式 */
  7. if a < 20 {
  8. /* 如果条件为 true 则执行以下语句 */
  9. fmt.Printf("a 小于 20\n" )
  10. }
  11. fmt.Printf("a 的值为 : %d\n", a)
  12. }

以上代码执行结果为:

  1. a 小于 20
  2. a 的值为 : 10

if…else 语句 if 语句 后可以使用可选的 else 语句, else 语句中的表达式在布尔表达式为 false 时执行。

语法

Go 编程语言中 if…else 语句的语法如下:
if 布尔表达式 { / 在布尔表达式为 true 时执行 / } else { / 在布尔表达式为 false 时执行 / }
if 在布尔表达式为 true 时,其后紧跟的语句块执行,如果为 false 则执行 else 语句块。

实例:

  1. package main
  2. import "fmt"
  3. func main() {
  4. /* 局部变量定义 */
  5. var a int = 100
  6. /* 判断布尔表达式 */
  7. if a < 20 {
  8. /* 如果条件为 true 则执行以下语句 */
  9. fmt.Printf("a 小于 20\n" )
  10. } else {
  11. /* 如果条件为 false 则执行以下语句 */
  12. fmt.Printf("a 不小于 20\n" )
  13. }
  14. fmt.Printf("a 的值为 : %d\n", a)
  15. }
  16. 以上代码执行结果为:
  17. a 不小于 20
  18. a 的值为 : 100

if 嵌套语句 你可以在 if 或 else if 语句中嵌入一个或多个 if 或 else if 语句。

语法

Go 编程语言中 if…else 语句的语法如下:
if 布尔表达式 1 { / 在布尔表达式 1 为 true 时执行 / if 布尔表达式 2 { / 在布尔表达式 2 为 true 时执行 / } }
你可以以同样的方式在 if 语句中嵌套 else if…else 语句

  1. package main
  2. import "fmt"
  3. func main() {
  4. /* 定义局部变量 */
  5. var a int = 100
  6. var b int = 200
  7. /* 判断条件 */
  8. if a == 100 {
  9. /* if 条件语句为 true 执行 */
  10. if b == 200 {
  11. /* if 条件语句为 true 执行 */
  12. fmt.Printf("a 的值为 100 , b 的值为 200\n" )
  13. }
  14. }
  15. fmt.Printf("a 值为 : %d\n", a )
  16. fmt.Printf("b 值为 : %d\n", b )
  17. }
  18. 以上代码执行结果为
  19. a 的值为 100 b 的值为 200
  20. a 值为 : 100
  21. b 值为 : 200