9.5 Go语言入门(条件语句和循环语句)

目录

Go 语言(Golang)是一种静态类型、编译型语言,由 Google 开发,专注于简洁性、并发和高效性。

下面是 Go 语言的基础语法讲解和代码示例。


上一篇:三、Go语言入门(运算符)


四、条件语句和循环语句

Go 语言中,条件语句和循环语句是控制程序流的基本结构。通过这些语句,可以实现不同的逻辑分支和重复操作。下面详细讲解 Go 语言中的条件语句和循环语句,并提供代码示例。

1. 条件语句

1.1 if 语句

if 语句用于条件判断。基本语法如下:

if condition {
    // 当 condition 为 true 时执行
}


package main

import "fmt"

func main() {
    age := 20

    if age >= 18 {
        fmt.Println("You are an adult.")
    }
}

1.2 if-else 语句

if-else 语句用于在条件为 false 时执行另一个分支。

package main

import "fmt"

func main() {
    age := 16

    if age >= 18 {
        fmt.Println("You are an adult.")
    } else {
        fmt.Println("You are a minor.")
    }
}

1.3 if-else if-else 语句

if-else if-else 语句用于多个条件判断。

package main

import "fmt"

func main() {
    score := 85

    if score >= 90 {
        fmt.Println("Grade: A")
    } else if score >= 80 {
        fmt.Println("Grade: B")
    } else if score >= 70 {
        fmt.Println("Grade: C")
    } else if score >= 60 {
        fmt.Println("Grade: D")
    } else {
        fmt.Println("Grade: F")
    }
}

1.4 带初始化语句的 if

if 语句支持在条件判断之前执行一个简单的语句。这个语句的作用域仅限于 if 语句块。

package main

import "fmt"

func main() {
    if x := 10; x > 5 {
        fmt.Println("x is greater than 5")
    }
    // fmt.Println(x) // 这里不能访问 x,因其作用域仅限于 if 语句块
}

1.5 switch 语句

switch 语句用于简化多个条件判断。每个 case 分支会自动终止,除非使用 fallthrough 关键字。

package main

import "fmt"

func main() {
    day := 3

    switch day {
    case 1:
        fmt.Println("Monday")
    case 2:
        fmt.Println("Tuesday")
    case 3:
        fmt.Println("Wednesday")
    case 4:
        fmt.Println("Thursday")
    case 5:
        fmt.Println("Friday")
    default:
        fmt.Println("Weekend")
    }
}

1.6 带条件的 switch

switch 语句可以不带表达式,这时每个 case 都是一个独立的条件判断。

package main

import "fmt"

func main() {
    num := -10

    switch {
    case num < 0:
        fmt.Println("Number is negative")
    case num == 0:
        fmt.Println("Number is zero")
    case num > 0:
        fmt.Println("Number is positive")
    }
}

1.7 多个条件的 case

一个 case 分支可以包含多个条件,用逗号分隔。

package main

import "fmt"

func main() {
    char := 'a'

    switch char {
    case 'a', 'e', 'i', 'o', 'u':
        fmt.Println("Vowel")
    default:
        fmt.Println("Consonant")
    }
}

2. 循环语句

for 是 Go 唯一的循环语句,可以实现各种循环结构。

2.1 基本 for 循环

for 循环包括初始化语句、条件表达式和后置语句。

package main

import "fmt"

func main() {
    for i := 0; i < 5; i++ {
        fmt.Println(i)
    }
}

2.2 省略初始化语句和后置语句的 for 循环

可以省略 for 循环的初始化语句和后置语句。

package main

import "fmt"

func main() {
    i := 0
    for i < 5 {
        fmt.Println(i)
        i++
    }
}

2.3 无限循环

省略条件表达式,可以创建一个无限循环。

package main

import "fmt"

func main() {
    i := 0
    for {
        fmt.Println(i)
        i++
        if i >= 5 {
            break
        }
    }
}

2.4 使用 range 的 for 循环

range 关键字可以用来迭代数组、切片、字符串、映射和通道。

package main

import "fmt"

func main() {
    // 迭代数组
    arr := [5]int{1, 2, 3, 4, 5}
    for index, value := range arr {
        fmt.Println("Index:", index, "Value:", value)
    }

    // 迭代字符串
    str := "hello"
    for index, char := range str {
        fmt.Println("Index:", index, "Char:", char)
    }

    // 迭代映射
    m := map[string]int{"a": 1, "b": 2}
    for key, value := range m {
        fmt.Println("Key:", key, "Value:", value)
    }
}

3. 控制语句

break 和 continue 用于控制循环的执行。

3.1 break 语句

break 用于终止循环。

package main

import "fmt"

func main() {
    for i := 0; i < 10; i++ {
        if i == 5 {
            break
        }
        fmt.Println(i)
    }
}

3.2 continue 语句

continue 用于跳过当前迭代,继续下一次迭代。

package main

import "fmt"

func main() {
    for i := 0; i < 10; i++ {
        if i%2 == 0 {
            continue
        }
        fmt.Println(i)
    }
}

3.3 goto 语句

Go 语言还支持 goto 语句用于无条件跳转,尽量避免使用 goto,以保持代码的可读性和可维护性。

package main

import "fmt"

func main() {
    i := 0
Loop:
    fmt.Println(i)
    i++
    if i < 5 {
        goto Loop
    }
}

通过理解条件语句和循环语句,可以编写逻辑复杂且结构清晰的 Go 语言程序。这些控制结构是编程中不可或缺的部分,掌握它们将极大提升你的编程能力。


下一篇:五、Go语言入门(数组、切片和指针)


在这里插入图片描述

  • 12
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ibun.song

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值