前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Go语言中的控制结构:条件语句和循环

Go语言中的控制结构:条件语句和循环

原创
作者头像
数字扫地僧
发布2024-06-12 14:51:21
1240
发布2024-06-12 14:51:21
举报
文章被收录于专栏:活动

在编程中,控制结构是指引导程序如何执行的一系列指令。Go语言提供了多种控制结构来处理条件判断和循环操作。本文将详细介绍Go语言中的条件语句和循环结构,通过实例和代码解释,帮助读者全面理解和应用这些基本构造。


Ⅰ. 条件语句

1. if 语句

if语句是最基本的条件语句,根据布尔表达式的结果(true或false)来执行相应的代码块。

a. 基本语法
代码语言:go
复制
if condition {
    // 当 condition 为 true 时执行的代码
}
b. 示例
代码语言:go
复制
package main

import "fmt"

func main() {
    a := 10
    if a > 5 {
        fmt.Println("a is greater than 5")
    }
}

在这个示例中,如果变量a的值大于5,程序将输出a is greater than 5

2. if-else 语句

if-else语句在条件为false时执行另一个代码块。

a. 基本语法
代码语言:go
复制
if condition {
    // 当 condition 为 true 时执行的代码
} else {
    // 当 condition 为 false 时执行的代码
}
b. 示例
代码语言:go
复制
package main

import "fmt"

func main() {
    a := 3
    if a > 5 {
        fmt.Println("a is greater than 5")
    } else {
        fmt.Println("a is less than or equal to 5")
    }
}

在这个示例中,如果a大于5,程序将输出a is greater than 5,否则输出a is less than or equal to 5

3. if-else if-else 语句

if-else if-else语句用于处理多个条件分支。

a. 基本语法
代码语言:go
复制
if condition1 {
    // 当 condition1 为 true 时执行的代码
} else if condition2 {
    // 当 condition2 为 true 时执行的代码
} else {
    // 当上述所有条件都为 false 时执行的代码
}
b. 示例
代码语言:go
复制
package main

import "fmt"

func main() {
    a := 7
    if a > 10 {
        fmt.Println("a is greater than 10")
    } else if a > 5 {
        fmt.Println("a is greater than 5 but less than or equal to 10")
    } else {
        fmt.Println("a is 5 or less")
    }
}

在这个示例中,程序将检查多个条件并输出相应的结果。

4. 带初始化的 if 语句

Go语言的if语句允许在条件判断前执行一个简单的语句,通常用于变量的声明和赋值。

a. 基本语法
代码语言:go
复制
if initialization; condition {
    // 当 condition 为 true 时执行的代码
}
b. 示例
代码语言:go
复制
package main

import "fmt"

func main() {
    if a := 10; a > 5 {
        fmt.Println("a is greater than 5")
    }
}

在这个示例中,变量a在if语句内部声明并初始化。


Ⅱ. switch 语句

switch语句是一种多分支选择结构,适用于替代多个if-else if语句。

1. 基本语法

代码语言:go
复制
switch expression {
case value1:
    // 当 expression == value1 时执行的代码
case value2:
    // 当 expression == value2 时执行的代码
default:
    // 当 expression 不等于上述所有值时执行的代码
}

2. 示例

代码语言:go
复制
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")
    default:
        fmt.Println("Other day")
    }
}

在这个示例中,根据变量day的值,程序输出相应的星期几。

3. 不带表达式的 switch 语句

Go语言的switch语句还可以省略表达式,直接在case语句中进行条件判断。

a. 基本语法
代码语言:go
复制
switch {
case condition1:
    // 当 condition1 为 true 时执行的代码
case condition2:
    // 当 condition2 为 true 时执行的代码
default:
    // 当上述所有条件都为 false 时执行的代码
}
b. 示例
代码语言:go
复制
package main

import "fmt"

func main() {
    a := 10
    switch {
    case a > 10:
        fmt.Println("a is greater than 10")
    case a > 5:
        fmt.Println("a is greater than 5 but less than or equal to 10")
    default:
        fmt.Println("a is 5 or less")
    }
}

在这个示例中,程序将根据条件判断来执行相应的代码块。

4. switch 语句中的 fallthrough

在Go语言中,使用fallthrough关键字可以使程序执行下一个case语句的代码。

a. 示例
代码语言:go
复制
package main

import "fmt"

func main() {
    day := 2
    switch day {
    case 1:
        fmt.Println("Monday")
        fallthrough
    case 2:
        fmt.Println("Tuesday")
        fallthrough
    case 3:
        fmt.Println("Wednesday")
    default:
        fmt.Println("Other day")
    }
}

在这个示例中,程序将从匹配的case开始执行,并继续执行后续的case代码块,直到遇到下一个break或结束。


Ⅲ. 循环结构

1. for 语句

Go语言中唯一的循环结构是for语句,适用于各种循环场景。

2. 基本语法

a. 基本 for 循环
代码语言:go
复制
for initialization; condition; post {
    // 循环体
}
b. 示例
代码语言:go
复制
package main

import "fmt"

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

在这个示例中,程序将输出0到4的数字。

3. 省略初始化和后置语句

for循环的初始化语句和后置语句是可选的。

a. 示例
代码语言:go
复制
package main

import "fmt"

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

在这个示例中,只有条件语句,没有初始化和后置语句。

4. 无限循环

省略所有三个部分会创建一个无限循环。

a. 示例
代码语言:go
复制
package main

import "fmt"

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

在这个示例中,循环通过条件判断和break语句来终止。

5. for-range 循环

for-range循环用于遍历数组、切片、映射和字符串。

a. 示例
代码语言:go
复制
package main

import "fmt"

func main() {
    numbers := []int{1, 2, 3, 4, 5}
    for index, value := range numbers {
        fmt.Printf("Index: %d, Value: %d\n", index, value)
    }
}

在这个示例中,程序将遍历切片numbers并输出每个元素的索引和值。

6. 循环控制语句

Go语言提供了breakcontinuegoto语句来控制循环的执行流程。

a. break 语句

用于终止最内层的循环。

代码语言:go
复制
package main

import "fmt"

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

在这个示例中,当i等于3时,循环终止。

b. continue 语句

用于跳过当前循环的剩余代码,并开始下一次循环。

代码语言:go
复制
package main

import "fmt"

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

在这个示例中,当i等于3时,跳过该次循环,继续下一次循环。

c. goto 语句

用于跳转到程序中的某个标签位置。

代码语言:go
复制
package main

import "fmt"

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

在这个示例中,goto语句跳转到标签loop位置,实现了类似于循环的效果。


Ⅳ. 项目介绍与发展

为了展示Go语言中的控制结构在实际项目中的应用,我们将构建一个简单的控制结构项目,涵盖条件语句和循环的各种用法。

1. 项目结构

代码语言:go
复制
control-structures/
├── main.go
├── conditions.go
└── loops.go

2. main.go

代码语言:go
复制
package main

import "control-structures/utils"

func main() {
    utils.DemoConditions()
    utils.DemoLoops()
}

3. conditions.go

代码语言:go
复制
package utils

import "fmt"

func DemoConditions() {
    // if 语句示例
    a := 10
    if a > 5 {
        fmt.Println("a is greater than 5")
    }

    // if-else 语句示例
    b := 3
    if b > 5 {
        fmt.Println("b is greater than 5")
    } else {
        fmt.Println("b is less than or equal to 5")
    }

    // if-else if-else 语句示例
    c := 7
    if c > 10 {
        fmt.Println("c is greater than 10")
    } else if c > 5 {
        fmt.Println("c is greater than 5 but less than or equal to 10")
    } else {
        fmt.Println("c is 5 or less")
    }

    // 带初始化的 if 语句示例
    if d := 10; d > 5 {
        fmt.Println("d is greater than 5")
    }

    // switch 语句示例
    day := 3
    switch day {
    case 1:
        fmt.Println("Monday")
    case 2:
        fmt.Println("Tuesday")
    case 3:
        fmt.Println("Wednesday")
    default:
        fmt.Println("Other day")
    }

    // 不带表达式的 switch 语句示例
    e := 10
    switch {
    case e > 10:
        fmt.Println("e is greater than 10")
    case e > 5:
        fmt.Println("e is greater than 5 but less than or equal to 10")
    default:
        fmt.Println("e is 5 or less")
    }

    // switch 语句中的 fallthrough 示例
    day = 2
    switch day {
    case 1:
        fmt.Println("Monday")
        fallthrough
    case 2:
        fmt.Println("Tuesday")
        fallthrough
    case 3:
        fmt.Println("Wednesday")
    default:
        fmt.Println("Other day")
    }
}

4. loops.go

代码语言:go
复制
package utils

import "fmt"

func DemoLoops() {
    // 基本 for 循环示例
    for i := 0; i < 5; i++ {
        fmt.Println(i)
    }

    // 省略初始化和后置语句的 for 循环示例
    j := 0
    for j < 5 {
        fmt.Println(j)
        j++
    }

    // 无限循环示例
    k := 0
    for {
        if k >= 5 {
            break
        }
        fmt.Println(k)
        k++
    }

    // for-range 循环示例
    numbers := []int{1, 2, 3, 4, 5}
    for index, value := range numbers {
        fmt.Printf("Index: %d, Value: %d\n", index, value)
    }

    // break 语句示例
    for l := 0; l < 5; l++ {
        if l == 3 {
            break
        }
        fmt.Println(l)
    }

    // continue 语句示例
    for m := 0; m < 5; m++ {
        if m == 3 {
            continue
        }
        fmt.Println(m)
    }

    // goto 语句示例
    n := 0
loop:
    fmt.Println(n)
    n++
    if n < 5 {
        goto loop
    }
}

Go语言中的条件语句和循环结构,包括if语句、switch语句以及for循环的各种用法。

我正在参与2024腾讯技术创作特训营最新征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Ⅰ. 条件语句
    • 1. if 语句
      • a. 基本语法
      • b. 示例
    • 2. if-else 语句
      • a. 基本语法
      • b. 示例
    • 3. if-else if-else 语句
      • a. 基本语法
      • b. 示例
    • 4. 带初始化的 if 语句
      • a. 基本语法
      • b. 示例
  • Ⅱ. switch 语句
    • 1. 基本语法
      • 2. 示例
        • 3. 不带表达式的 switch 语句
          • a. 基本语法
          • b. 示例
        • 4. switch 语句中的 fallthrough
          • a. 示例
      • Ⅲ. 循环结构
        • 1. for 语句
          • 2. 基本语法
            • a. 基本 for 循环
            • b. 示例
          • 3. 省略初始化和后置语句
            • a. 示例
          • 4. 无限循环
            • a. 示例
          • 5. for-range 循环
            • a. 示例
          • 6. 循环控制语句
            • a. break 语句
            • b. continue 语句
            • c. goto 语句
        • Ⅳ. 项目介绍与发展
          • 1. 项目结构
            • 2. main.go
              • 3. conditions.go
                • 4. loops.go
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档