• 【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 这会导致执行流乱跳的情况

  • 相关阅读:
    统计学习方法P54中位数脚注
    【面试题】CSS响应式
    数据可视化【原创】vue+arcgis+threejs 实现流光立体墙效果
    区块链的使用场景和优势
    计算机考研408-I/O方式大题答题流程
    JS 高级
    Web实现在鼠标或点击处的文字特效
    LeetCode 674. Longest Continuous Increasing Subsequence
    python高阶函数心得笔记,python高阶函数知识
    卷积神经网络的基本操作,卷积神经网络理论基础
  • 原文地址:https://blog.csdn.net/meihaoshy/article/details/134420844