• 【Hello Go】Go语言流程控制


    Go语言支持最基本的三种程序结构

    • 顺序结构
    • 选择结构
    • 循环结构

    选择结构

    if语句

    Go语言中的if语句是没有括号的

    代码演示如下

    	var a int = 3  // 因为a == 3 所以说只会输出3
    	if a == 3 {
    		fmt.Println("a == 3") 
    	}
    
    	if a == 4 {
    		fmt.Println("a == 4")
    	}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    此外Go语言的if语句还支持一个初始化表达式

    始化表达式和条件表达式之间要用分号隔开

    if b:=3 ; b == 3{ // 初始化表达式和条件表达式之间要用分号隔开 
    
    • 1

    if … else if … else

    Go语言和C++中if语句的差别主要是有两点

    • Go语言中的if elseif等后面条件不加括号
    • Go语言的大括号禁止换行

    代码表示如下

    	// test if ... else ...
    	var a int = 5
    	if a == 3 {
    		fmt.Println("a == 3")
    	}else if a == 4 {
    		fmt.Println("a == 4")
    	}else {
    		fmt.Println("a != 3")
    	}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    switch语句

    Go语言的switch语句和C++中的switch语句不同的是 Go语言中的case语句后面默认带着break 所以说我们不用像C++一样后面加上break了

    代码示例如下

    	// test switch case 
    	var score int = 90
    	switch score{
    	case 90:
    		fmt.Println("优秀")
    	case 80:
    		fmt.Println("良好")
    	case 70 , 60 , 50 :
    		fmt.Println("一般")
    	default:
    		fmt.Println("差")
    	}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    如果我们想要强制执行后面的代码 只需要在执行语句后面加上一个 fallthrough 即可

    	// test switch case 
    	var score int = 90
    	switch score{
    	case 90:
    		fmt.Println("优秀")
    		fallthrough
    	case 80:
    		fmt.Println("良好")
    	case 70 , 60 , 50 :
    		fmt.Println("一般")
    	default:
    		fmt.Println("差")
    	}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    如果我们不指定switch的变量 我们还可以使用条件表达式来case 比如说

    	var score int = 90
    	switch  { // 不switch变量
    	case score >= 90:
    		fmt.Println("优秀")
    	default:
    		fmt.Println("差")
    	}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    循环结构

    **这里需要注意的是 go语言没有while循环 **

    for循环

    for循环和C++的唯一区别就是不加括号

    代码示例如下

    func test5()  {
    	var sum int = 0 
    	var i int = 0
    	for i = 0; i < 10; i++{
    		sum += i
    	}
    
    	fmt.Println(sum)
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    这里值得注意的一点是 go语言中不允许int a = 10 这种写法

    range

    在Go语言中 我们可以使用range来遍历一个字符串或数组等

    关键字range会返回给我们两个值 一个是下标 一个是元素的值

    如果说我们只用一个参数接受返回值的话 那么默认就是接受下标

    	var str string = "abcde" 
    
    	for _ , i := range str { // 舍弃掉下表 只需要stirng中的值
    		fmt.Printf("%c\n" , i)
    	}
    
    • 1
    • 2
    • 3
    • 4
    • 5

    跳转语句

    Go语言的跳转语句有三个

    • break
    • continue
    • goto

    break是跳出当前循环 它在循环语句中都可以使用 而continue只能在for循环中使用

    goto的用法也和我们C++的用法一样 但是我们不建议使用goto 这会导致执行流乱跳的情况

  • 相关阅读:
    中英文说明书丨TRC D-阿卓糖(D-Altrose)
    AI 大战高考作文!实测 ChatGPT、文心一言、通义千问等 8 款“神器”
    java基于微信小程序的捷邻商品销售小程序+ssm+uinapp+Mysql+计算机毕业设计
    整理一些mysql常用的命令
    理解『注意力机制』的本质
    C# 获取本机IP地址,IPv4,IPv6(保姆级)
    软件使用经验合集(操作系统、常用软件)
    Django——模板应用
    java计算机毕业设计网上汽车售票系统源码+数据库+lw文档+系统+部署
    matlab, python串口10ms毫秒 连续发送16进制数组
  • 原文地址:https://blog.csdn.net/meihaoshy/article/details/134420844