10、做中学 | 五年级下期 Golang循环控制

一、一个小需求

我想要打印10遍hello world,你想怎么编写呢?

	// 需求:打印10遍"hello world"
	fmt.Println("hello world")
	fmt.Println("hello world")
	fmt.Println("hello world")
	fmt.Println("hello world")
	fmt.Println("hello world")
	fmt.Println("hello world")
	fmt.Println("hello world")
	fmt.Println("hello world")
	fmt.Println("hello world")
	fmt.Println("hello world")

平常打印输出一个俩个没问题,那一旦要求100遍,1000遍怎么做呢?

go中进行打印10遍hello world,使用for循环

	// 循环
	for i := 0; i < 10; i++ {
		fmt.Println("hello world")
		
	}

二、for循环

一个for循环解决了上边的小需求,那怎么使用for循环呢

1. for循环结构体

	for 循环变量初始化;循环判断条件;循环变量迭代 {
		循环执行语句
	}

可以了解使用for,需要上边的四个要素:循环变量初始化;循环判断条件;循环变量迭代;循环执行语句

2. 循环四要素

  1. 循环初始化:声明在循环过程中,进行判断和变量迭代,进行控制循环次数
  2. 循环判断条件:为true时,进行循环体下一步;为false则结束循环
  3. 循环变量迭代:进行计算循环次数,一般使用变量累加进行计算
  4. 循环执行语句:TODO 我们待开发的功能

3. 循环四要素的执行顺序

  1. 第一步:循环初始化
  2. 第二步:循环判断条件(为true进行下边步骤)
  3. 第三步:循环执行语句
  4. 第四步:循环变量迭代
  5. 第五步:循环执行第二步–至–第四步 直到判断条件为false,退出循环

如果判断条件一直为true,那么该for循环,为死循环(开发过程需要禁止)

4. 尝试for

	// 需求:循环五次,并打印每次初始化值
	for i := 0; i < 5; i++ {
		fmt.Println("i = ", i)
	}
	//i =  0
	//i =  1
	//i =  2
	//i =  3
	//i =  4

三、for变体之while

go中没有while循环结构,但可以通过for进行变体,达到while功能的要求

	// 循环初始化
	var i int = 0
	// 循环判断
	for i < 5 {
		// 循环语句
		fmt.Println("i = ", i)
		// 循环迭代
		i++
	}
	//i =  0
	//i =  1
	//i =  2
	//i =  3
	//i =  4

结构体中,可以看出,如果把for换成while,是不是就是大家熟悉的while循环呢?

四、for变体之do…while

go中没有do…while循环结构,也可以通过for进行变体,达到do…while功能的功能

// 循环初始化
	var j int = 0
	for {
		// 循环语句
		fmt.Println("j = ", j)

		// 循环迭代
		j++

		// 循环判断
		if j >= 5 {
			break
		}
	}
	//j =  0
	//j =  1
	//j =  2
	//j =  3
	//j =  4

五、for循环遍历列表

使用range进行遍历序列的值

	var str = "hello world"
	for index, val := range str {
		fmt.Printf("下标index=%d, 遍历值val=%q\n", index, val)
	}
	//下标index=0, 遍历值val='h'
	//下标index=1, 遍历值val='e'
	//下标index=2, 遍历值val='l'
	//下标index=3, 遍历值val='l'
	//下标index=4, 遍历值val='o'
	//下标index=5, 遍历值val=' '
	//下标index=6, 遍历值val='w'
	//下标index=7, 遍历值val='o'
	//下标index=8, 遍历值val='r'
	//下标index=9, 遍历值val='l'
	//下标index=10, 遍历值val='d'

六、跳出语句

刚刚在变体do…while过程中,我们使用到了break,那么为什么要使用他,他有什么作用呢?

break、continue这俩个都是出现在循环结构体中,进行循环的跳出
break: 结束当前结构体循环
continue: 结束本次循环

	for i := 0; i < 10; i++ {
		if i%2 == 0 {
			continue
		}
		fmt.Println("i=", i)
		if i > 5 {
			break
		}
	}
	//i= 1
	//i= 3
	//i= 5
	//i= 7

可以看到,偶数循环过程中,进行了跳过处理,当i大于5的时候进行中断,当结果为7时,进行循环中断

本章讲了一些for循环的基本知识和for的几种变体使用

  1. 知道循环和使用
  2. 熟练使用for的几种变体
  3. 熟练使用break和continue
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值