c语言编程笔录

首页 >   > 笔记大全

笔记大全

Go流程控制代码怎么写

更新时间:2023-12-07
Go 语言提供了多种控制流程语句,用于控制程序的流程和执行顺序。这些控制流程语句可以帮助我们根据特定的条件重复执行代码块,或者根据不同的条件选择执行不同的代码块。本文将介绍 Go 中常用的流程控制语句和其用法,包括 if-else、for循环、switch-case 和 select 语句等。

if-else

if-else 语句是用来根据一个条件判断来选择执行相应的代码块。它的语法如下:

if condition {
  // 在条件成立时执行的代码块
} else {
  // 在条件不成立时执行的代码块
}

示例:

age := 20
if age >= 18 {
  fmt.Println("成年人")
} else {
  fmt.Println("未成年人")
}

示例中,如果年龄大于或等于18岁,则输出"成年人";否则输出"未成年人"。

for循环

for 循环语句用于重复执行某个代码块,可以基于一个条件或者一个集合进行循环。常见的 for 循环语句有三种形式:

1. 常规 for 循环:

for 初始语句; 循环条件; 后置语句 {
  // 循环体
}

示例:

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

示例中,循环体将会执行5次,输出结果为 0,1,2,3,4。

2. for range 循环:

for index, value := range collection {
  // 循环体
}

示例:

numbers := [5]int{1, 2, 3, 4, 5}
for index, value := range numbers {
  fmt.Printf("第%d个数字是%d\n", index, value)
}

示例中,循环体将会迭代 numbers 数组中的数字,并输出其位置和值。

3. 无限循环:

for {
  // 循环体
}

示例:

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

示例中,循环体将会无限循环,直到 i 大于等于 5 时使用 break 语句跳出循环。

switch-case

switch-case 语句用于根据不同的条件选择执行不同的代码块。它的语法如下:

switch expression {
  case value1:
    // 当 expression 等于 value1 时执行的代码块
  case value2:
    // 当 expression 等于 value2 时执行的代码块
  default:
    // 其他情况下执行的代码块
}

示例:

day := "周日"
switch day {
  case "周一", "周二", "周三", "周四", "周五":
    fmt.Println("工作日")
  case "周六", "周日":
    fmt.Println("休息日")
  default:
    fmt.Println("未知")
}

示例中,根据 day 的值选择执行相应的代码块,最后输出结果为"休息日"。

select语句

select 语句用于处理多个通道操作,它类似于 switch 语句,但用于通道操作。select 语句会一直阻塞,直到有一个通道的操作可以进行。

select {
  case <- channel1:
    // 当 channel1 接收到数据时执行的代码块
  case data := <- channel2:
    // 当 channel2 接收到数据时执行的代码块
  case channel3 <- data:
    // 当数据发送到 channel3 时执行的代码块
  default:
    // 如果没有任何通道操作可进行时执行的代码块
}

示例:

channel1 := make(chan int)
channel2 := make(chan int)
select {
  case <-channel1:
    fmt.Println("从 channel1 接收到数据")
  case <-channel2:
    fmt.Println("从 channel2 接收到数据")
  default:
    fmt.Println("没有接收到任何数据")
}

示例中,select 语句会一直阻塞,直到有一个通道的操作可以进行。如果没有任何通道的操作可进行,则执行 default 中的代码块,输出"没有接收到任何数据"。

总结:Go 语言提供了 if-else、for 循环、switch-case 和 select 等流程控制语句,可以帮助我们根据条件选择执行相应的代码块,或者重复执行代码块,或者处理多个通道操作。熟练掌握这些流程控制语句,可以编写出更加灵活和高效的程序。