• Go语言入门【4】循环语句


    循环语句是一个编程语言中不可缺少的一部分,循环通常用来完成具有规律性的重复性的操作,例如通过循环计算1到100的累加或者累乘。

    for循环

    for循环是一个循环控制语句,在go语言中,for循环一共有三种方式

    第一种

    语法:

    for init; condition; post {
        // 循环执行的语句
    }
    
    • 1
    • 2
    • 3

    在这种循环方式中,可指定循环的次数。

    init:赋值表达式,用于给控制变量赋初值

    condition:条件表达式,用于控制循环

    post:赋值表达式,用于给控制变量做增量或减量

    循环执行步骤:

    1. 通过init给控制变量赋值
    2. 判断condition是否为true,如果为true则执行循环体内的代码
    3. 循环体内的代码执行完之后通过post对控制变量进行增量或减量
    4. 返回第2步继续判断,然后第2、3步持续循环,知道condition为false时跳出循环

    代码示例:

    package main
    
    import "fmt"
    
    func main() {
        // 计算从1到100的累加结果
    	var sum int
    	for i := 1; i <= 100; i++ {
    		sum += i
    	}
    	fmt.Println("1到100累加结果为:", sum)
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    运行结果:

    image-20220115195311239

    第二种

    在第一种循环的基础上,init和post不是必须存在,可以没有init或者没有post,或者两个都没有都可以,

    语法:

    for condition { 
    	// 循环执行的语句
    }
    
    • 1
    • 2
    • 3

    代码示例:

    package main
    
    import "fmt"
    
    func main() {
        // 计算1到10累乘结果
    	var sum int = 1
    	i := 1
    	for i <= 10 {
    		sum *= i
    		i++
    	}
    	fmt.Println("1到10累乘结果为:", sum)
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    还有一种特殊的循环就是无限循环,无限循环就是表示没有终止条件的循环,这样for循环体中的代码就会无休止的一直执行,在实际开发中要注意避免无限循环情况的发生。

    package main
    
    import "fmt"
    
    func main() {
            sum := 0
            for {
                sum++ 			// 无限循环累加
            }
            fmt.Println(sum) 	// 无法输出
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    第三种

    第三种循环是用于数组、切片等输出的循环,在这种循环中,需要使用到一个关键字range,range后面紧跟的是需要遍历的数组或切片,range前面可以使用两个变量进行接收数据,第一个变量会接收到数组或切片的下标,第二个变量会接收到数组或切片的值,在循环的过程中,会把数组或切片中的下标和值依次一个个取出来赋值给index和value。

    语法:

    for index, value := range variable {
        // 循环体
    } 
    
    • 1
    • 2
    • 3

    代码示例:

    package main
    
    import "fmt"
    
    func main() {
    	numbers := [9]int {1,2,3,4,5,6,7,8,9}
    	for i, v := range numbers {
    		fmt.Printf("第%d个数是:%d \n", i, v)
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    运行结果:

    image-20220115200955695

    由于数组和切片的下标是从0开始的,所以第一行显示的是第0个数。

    tips:数组和切片后面会详细介绍

    break

    break语句的作用是在循环中跳出循环,或者在switch中执行一个case后跳出swit。

    代码示例:

    package main
    
    import "fmt"
    
    func main() {
    	sum := 1
    	for {
    		sum++
    		if sum > 10 {
    			break
    		}
    	}
    	fmt.Println(sum)		// 输出11
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    虽然这里使用的for循环是一个死循环,但是在循环体内进行了判断,当sum的值大于10的时候就跳出循环,所以该循环不会无休止的执行下去,而是会在sum加到11时就跳出循环。

    continue

    continue和break用法类似,但是和break直接跳出循环不一样的是,continue并不是直接跳出循环,而是结束本轮循环,执行post对控制变量进行增量或减量后进行下一轮循环。

    代码示例:

    package main
    
    import "fmt"
    
    func main() {
        // 计算1到100之间所有奇数的和
    	var sum int
    	for i := 1; i <= 100; i++ {
            // 当i取余2为0时,则表示当前数为偶数,不参与计算,通过continue跳出本轮循环开始下一轮循环
    		if i%2 == 0 {
    			continue
    		}
    		sum += i
    	}
    	fmt.Println("1到100之间奇数和为:", sum)
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    运行结果:

    image-20220115202105826

    关注持续更新……

  • 相关阅读:
    HR人才测评,提高员工和岗位的适配度
    Liunx上JSON处理工具jq
    Scalpel:解构API复杂参数Fuzz的「手术刀」
    算法练习5——多数元素
    Android笔记(六):JetPack Compose常见的UI组件
    927. 三等分-按1划分 -力扣双百代码
    2030:【例4.16】找素数 (信奥一本通)
    章节七:csv&excel
    React-Admin后台管理模板|react18+arco+zustand后台解决方案
    二叉树的性质的结点数与高度的计算题
  • 原文地址:https://blog.csdn.net/qq_41286145/article/details/127763961