首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >学习go语言编程之流程控制

学习go语言编程之流程控制

作者头像
编程随笔
发布2023-10-15 17:41:08
发布2023-10-15 17:41:08
3630
举报
文章被收录于专栏:后端开发随笔后端开发随笔

Golang支持如下4种流程控制语句:

  1. 条件语句:if,else和else if
  2. 选择语句:switch,case和select
  3. 循环语句:for,range
  4. 跳转语句:goto

条件语句

示例代码:

代码语言:javascript
复制
a := 3
if a < 5 {
    fmt.Println(a, "litter than 5")
} else {
    fmt.Println(a, "not litter than 5")
}

关于条件语句,要注意以下几点:

  • 条件语句不要使用小括号()将条件包含起来
  • 不论语句体内有几条语句,花括号{}都是必须存在
  • 左花括号{必须与ifelse在同一行
  • if之后,条件语句之前,可以添加变量初始化语句,使用分号;分隔

选择语句

根据传入条件的不同,选择语句会执行不同的分支。 示例代码:

代码语言:javascript
复制
switch i {
case 0:
    fmt.Println("0")
case 1:
    fmt.Println("1")
case 2:
    fallthrough
case 3:
    fmt.Println("3")
case 4,5,6:
    fmt.Println("4, 5, 6")
default:
    fmt.Println("default")
}

i = 0,输出:0 i = 1,输出:1 i = 2,输出:3 i = 3,输出:3 i = 4,输出:4, 5, 6 i = 5,输出:4, 5, 6 i = 6,输出:4, 5, 6 i = 其他值,输出:default

有意思的是,switch后面的表达式都不是必须的,如下示例:

代码语言:javascript
复制
switch { // switch关键字之后没有表达式
case i >= 0 && i <= 3:
    fmt.Println("0-3")
case i >= 4 && i <= 6:
    fmt.Println("4-6")
}

关于选择语句,注意一下几点:

  • 左花括号{必须与switch处于同一行
  • 条件表达式不限制为常量或整数
  • 单个case中,可以出现多个结果选项
  • 不需要使用break语句退出case
  • 只有在case中出现了关键字fallthrough,才会继续执行紧跟的下一个case
  • 可以不设置switch之后的条件表达式

循环语句

Golang中的循环语句只支持for关键字。 示例代码:

代码语言:javascript
复制
sum := 0
for i = 0; i < 10; i++ {
    sum += 1
}

无限循环:

代码语言:javascript
复制
sum := 0
for {
    sum++
    if sum > 10 {
        break
    }
}

在循环语句的条件表达式中支持多重赋值:

代码语言:javascript
复制
a := []int{1, 2, 3, 4, 5, 6}
for i, j := 0, len(a) - 1; i < j; i, j = i + 1, j - 1 {
    a[i], a[j] = a[j], a[i]
}

关于循环语句,注意以下几点:

  • 左花括号{必须与for在同一行
  • 支持使用continuebreak来控制循环

跳转语句

goto语句的语义非常简单,就是跳转到本函数内的某个标签。 示例语句:

代码语言:javascript
复制
// 如下使用goto语句实现了类似循环的效果
func gotoSample()  {
	i := 0
	HERE:
		fmt.Println(i)
	i++
	if i < 5 {
		goto HERE
	}
 }

输出:

代码语言:javascript
复制
0
1
2
3
4
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-08-12,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 条件语句
  • 选择语句
  • 循环语句
  • 跳转语句
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档