【Golang】:流程控制语句

发布于:2025-08-16 ⋅ 阅读:(16) ⋅ 点赞:(0)

目录

1. 分支控制

1.1 if 语句

1.2 switch 语句

2. 循环控制

3. 跳转控制

3.1 break 语句

3.2 continue 语句

3.3 goto

3.4 return语句

3.5 带标签的 break / continue


1. 分支控制

1.1 if 语句

if 条件 { 
    // 条件成立时执行 
} else if 其他条件 { 
    // 另一个条件成立时执行 
} else { 
    // 都不成立时执行 
}

// 支持变量初始化:
if score := 80; score >= 60 { 
    fmt.Println("及格") 
}

1.2 switch 语句

switch 表达式 { 
case 值1: 
    // ... 
case 值2, 值3: // 多个匹配值 
    // ... 
default: 
    // 都不匹配时执行 
}

特点:

  • Go 的 switch 不需要写 break,匹配成功会自动跳出。

  • 想继续执行下一个 case,可以用 fallthrough

    // 一
	// 二
	switch num := 1; num {
	case 1:
		fmt.Println("一")
		fallthrough
	case 2:
		fmt.Println("二")
	}

2. 循环控制

Go 只有 for 一种循环语句。

// 1. 标准 for 循环
for i := 0; i < 5; i++ {
    fmt.Println(i) 
}

// 2. while 风格
i := 0 
for i < 5 { 
    fmt.Println(i) 
    i++ 
}

// 3. 无限循环
for { 
    fmt.Println("一直执行") 
}

for range

用于遍历数组、切片、map、字符串:

// 在for range循环中遍历字符串时,每次迭代会返回两个值
// 第一个是字符的索引
// 第二个是字符的值,当遍历结束后会自动退出for循环。
nums := []int{1, 2, 3} 
for i, v := range nums { 
    fmt.Println(i, v) 
}

3. 跳转控制

3.1 break 语句

退出当前循环或 switch

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

3.2 continue 语句

跳过本次循环,进入下一次循环。

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

3.3 goto

直接跳到某个标签执行(不建议频繁使用)。

    fmt.Println("开始") 
    goto End 
    fmt.Println("这里不会执行") 
End: 
    fmt.Println("结束")

3.4 return语句

Go中的return语句在方法或函数中使用,表示跳出所在的方法或函数。如下:

// 在普通函数中使用return语句,表示跳出当前函数,可以理解成终止函数。
// 在main函数中使用return语句,表示终止main函数,即终止整个程序。
func main() {
	// return语句
	for i := 0; i < 10; i++ {
		if i == 6 {
			return
		}
		fmt.Printf("%d ", i)
	}
}

3.5 带标签的 break / continue

当有多层循环时,可以退出到指定标签。

    // 0 0
    Outer:
    for i := 0; i < 3; i++ {
        for j := 0; j < 3; j++ {
            if j == 1 {
                break Outer // 直接跳出 Outer 循环
            }
            fmt.Println(i, j)
        }
    }


    /*
    0 0
    1 0
    2 0
    */
    Outer:
	for i := 0; i < 3; i++ {
		for j := 0; j < 3; j++ {
			if j == 1 {
				continue Outer // 直接跳出 Outer 循环
			}
			fmt.Println(i, j)
		}
	}


网站公告

今日签到

点亮在社区的每一天
去签到