Go 语言:循环、条件判断和 switch 语句详解| 豆包MarsCode AI刷题(3)

91 阅读2分钟

在前面的文章中,我们已经介绍了 Go 语言的基本变量声明、类型推断、常量定义和标准库的使用。接下来,我们将通过三个具体的示例来详细讲解 Go 语言中的循环、条件判断和 switch 语句。

循环

无限循环和 break 语句

package main

import "fmt"

func main() {
	i := 1
	for {
		fmt.Println("loop")
		break
	}
}
  • for { ... } :这是一个无限循环,如果没有 break 语句,它将一直执行下去。
  • breakbreak 语句用于立即退出当前的循环体。

带条件的 for 循环

for j := 7; j < 9; j++ {
	fmt.Println(j)
}
  • for j := 7; j < 9; j++ :这是一个典型的 for 循环,初始值 j 设为 7,条件是 j < 9,每次循环后 j 自增 1

continue 语句的 for 循环

for n := 0; n < 5; n++ {
	if n%2 == 0 {
		continue
	}
	fmt.Println(n)
}
  • if n%2 == 0:检查 n 是否为偶数。
  • continue:如果 n 是偶数,则跳过本次循环的剩余部分,直接进入下一次循环。

带条件更新的 for 循环

for i <= 3 {
	fmt.Println(i)
	i = i + 1
}
  • for i <= 3:这是一个简化的 for 循环,只有条件部分。每次循环后需要手动更新 i 的值。 图片.png

条件判断

基本的 if 语句

if 7%2 == 0 {
	fmt.Println("7 is even")
} else {
	fmt.Println("7 is odd")
}
  • if 7%2 == 0:检查 7 是否为偶数。
  • else:如果条件不成立,则执行 else 分支。

多重条件判断

if 8%4 == 0 {
	fmt.Println("8 is divisible by 4")
}

if num := 9; num < 0 {
	fmt.Println(num, "is negative")
} else if num < 10 {
	fmt.Println(num, "has 1 digit")
} else {
	fmt.Println(num, "has multiple digits")
}
  • if num := 9; num < 0:在 if 语句中声明并初始化变量 num
  • else if:多个条件分支,依次检查每个条件。
  • else:所有条件都不满足时执行的分支。 图片.png

switch 语句

基本的 switch 语句

a := 2
switch a {
case 1:
	fmt.Println("one")
case 2:
	fmt.Println("two")
case 3:
	fmt.Println("three")
case 4, 5:
	fmt.Println("four or five")
default:
	fmt.Println("other")
}
  • switch a:根据变量 a 的值进行匹配。
  • case 1: :如果 a 的值为 1,则执行相应的代码块。
  • case 4, 5: :可以同时匹配多个值。
  • default: :如果没有匹配的 case,则执行 default 分支。

带条件的 switch 语句

t := time.Now()
switch {
case t.Hour() < 12:
	fmt.Println("It's before noon")
default:
	fmt.Println("It's after noon")
}
  • switch { ... } :不带表达式的 switch 语句,直接根据条件进行匹配。
  • case t.Hour() < 12:检查当前时间是否在中午之前。

图片.png