Golang编程入门:流程控制语句

2023年 7月 11日 55.8k 0

涉及到流程控制时,Go语言提供了许多选项来满足不同需求的编程场景。以下是一些常见的流程控制语句:

  • 条件语句:if、else、switch
  • 当涉及到流程控制时,Go语言提供了许多选项来满足不同需求的编程场景。以下是一些常见的流程控制语句以及相应的示例:

    条件语句

    if语句

    if语句允许您根据条件执行代码。以下是一个简单的if语句示例:

    package main
    
    import "fmt"
    
    func main() {
        x := 10
    
        if x < 5 {
            fmt.Println("x is less than 5")
        } else {
            fmt.Println("x is greater than or equal to 5")
        }
    }
    

    if-else if语句

    if-else if语句允许您根据多个条件执行代码。以下是一个if-else if语句的示例:

    package main
    
    import "fmt"
    
    func main() {
        x := 10
    
        if x = 5 && x < 15 {
            fmt.Println("x is between 5 and 14")
        } else {
            fmt.Println("x is greater than or equal to 15")
        }
    }
    

    switch语句

    switch语句可以根据不同情况执行不同的代码块。以下是一个switch语句的示例:

    package main
    
    import "fmt"
    
    func main() {
        x := 2
    
        switch x {
        case 1:
            fmt.Println("x is 1")
        case 2:
            fmt.Println("x is 2")
        case 3:
            fmt.Println("x is 3")
        default:
            fmt.Println("x is not 1, 2, or 3")
        }
    }
    
  • 循环语句:for、range
  • 当涉及到流程控制时,Go语言提供了许多选项来满足不同需求的编程场景。以下是一些常见的流程控制语句以及相应的示例:

    循环语句

    for循环

    for循环用于重复执行一组代码。以下是一个简单的for循环示例:

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

    range循环

    range循环可以用于遍历数组、切片、映射和通道等数据结构中的元素。以下是一个使用range循环遍历切片的示例:

    package main
    
    import "fmt"
    
    func main() {
        s := []string{"apple", "banana", "orange"}
    
        for i, v := range s {
            fmt.Println(i, v)
        }
    }
    
  • 跳转语句:goto、continue、break、return
  • 跳转语句

    goto语句

    goto语句可以将控制转移到指定标签处的代码行。以下是一个使用goto语句跳转到标签的示例:

    package main
    
    import "fmt"
    
    func main() {
        i := 0
    
    loop:
        if i < 5 {
            fmt.Println(i)
            i++
            goto loop
        }
    }
    

    continue语句

  • 在for循环中使用continue跳过当前迭代:
  • for i := 0; i < 10; i++ {
        if i%2 == 0 {
            continue // 跳过偶数
        }
        fmt.Println(i)
    }
    

    输出为:

    1
    3
    5
    7
    9
    
  • 在嵌套的for循环中使用continue跳过外层循环的当前迭代:
  • for i := 0; i < 3; i++ {
        for j := 0; j < 3; j++ {
            if i == j {
                continue // 跳过 i == j 的情况
            }
            fmt.Println(i, j)
        }
    }
    

    输出为:

    0 1
    0 2
    1 0
    1 2
    2 0
    2 1
    
  • 在switch语句中使用continue跳过当前case:
  • var x interface{} = "hello"
    
    switch v := x.(type) {
    case int:
        fmt.Printf("twice %v is %v\n", v, v*2)
    case string:
        if len(v) == 0 {
            continue // 空字符串则跳过
        }
        fmt.Println("string of length", len(v))
    default:
        fmt.Printf("unexpected type %T\n", v)
    }
    

    输出为:

    string of length 5
    

    这些示例展示了continue语句在不同场景下的使用,它可以帮助我们跳过当前迭代或case,进入下一轮迭代或case。

    break语句

    当在循环或选择语句中使用break语句时,程序将跳出该语句并继续执行下一条语句。以下是一些关于Go中break语句的示例代码:

    在for循环中使用break

    package main
    
    import "fmt"
    
    func main() {
     // 打印0-9间的奇数
     for i := 0; i < 10; i++ {
      if i%2 == 0 {
       continue // 如果为偶数则跳过,继续下一次循环
      }
      fmt.Println(i)
      if i == 5 {
       break // 当i等于5时跳出循环
      }
     }
    }
    

    输出结果:

    1
    3
    5
    

    在switch语句中使用break

    package main
    
    import "fmt"
    
    func main() {
     // 根据不同的数字输出不同的文本
     number := 3
     switch number {
     case 1:
      fmt.Println("这是第一个数字")
     case 2:
      fmt.Println("这是第二个数字")
     case 3:
      fmt.Println("这是第三个数字")
      break // 当number等于3时跳出switch语句
     case 4:
      fmt.Println("这是第四个数字")
     default:
      fmt.Println("这不是一个有效的数字")
     }
    }
    

    输出结果:

    这是第三个数字
    

    嵌套循环中使用break

    package main

    import "fmt"

    func main() {
    // 打印九九乘法表中的前三行
    for i := 1; i

    相关文章

    JavaScript2024新功能:Object.groupBy、正则表达式v标志
    PHP trim 函数对多字节字符的使用和限制
    新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
    使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
    为React 19做准备:WordPress 6.6用户指南
    如何删除WordPress中的所有评论

    发布评论