暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

第19节 for循环语句

RubyHan 2019-06-21
336

一、程序的流程结构

程序的流程控制结构一共有三种:顺序结构,选择结构,循环结构。

顺序结构:代码从上向下逐行的执行

选择结构:条件满足,某些代码才会被执行。0-1次

if语句,switch语句

循环结构:条件满足,某些代码会被反复的多次执行。0-n次

for语句

二、循环语句

循环语句表示条件满足,可以反复的执行某段代码。

for是唯一的循环语句。(Go没有while循环)

##2.1 for语句

语法结构:

  1. for init; condition; post { }

初始化语句只执行一次。在初始化循环之后,将检查该条件。如果条件计算为true,那么{}中的循环体将被执行,然后是post语句。post语句将在循环的每次成功迭代之后执行。在执行post语句之后,该条件将被重新检查。如果它是正确的,循环将继续执行,否则循环终止。

示例代码:

  1. package main
  2. import (
  3. "fmt"
  4. )
  5. func main() {
  6. for i := 1; i <= 10; i++ {
  7. fmt.Printf(" %d",i)
  8. }
  9. }

在for循环中声明的变量仅在循环范围内可用。因此,i不能在外部访问循环。

2.2 for循环变体

所有的三个组成部分,即初始化、条件和post都是可选的。

  1. for condition { }

效果与while相似

  1. for { }

效果与for(;;) 一样

for 循环的 range 格式可以对 slice、map、数组、字符串等进行迭代循环

  1. for key, value := range oldMap {
  2. newMap[key] = value
  3. }
  1. package main
  2. import "fmt"
  3. func main() {
  4. var b int = 15
  5. var a int
  6. numbers := [6]int{1, 2, 3, 5}
  7. /* for 循环 */
  8. for a := 0; a < 10; a++ {
  9. fmt.Printf("a 的值为: %d\n", a)
  10. }
  11. for a < b {
  12. a++
  13. fmt.Printf("a 的值为: %d\n", a)
  14. }
  15. for i,x:= range numbers {
  16. fmt.Printf("第 %d 位 x 的值 = %d\n", i,x)
  17. }
  18. }

运行结果:

  1. a 的值为: 0
  2. a 的值为: 1
  3. a 的值为: 2
  4. a 的值为: 3
  5. a 的值为: 4
  6. a 的值为: 5
  7. a 的值为: 6
  8. a 的值为: 7
  9. a 的值为: 8
  10. a 的值为: 9
  11. a 的值为: 1
  12. a 的值为: 2
  13. a 的值为: 3
  14. a 的值为: 4
  15. a 的值为: 5
  16. a 的值为: 6
  17. a 的值为: 7
  18. a 的值为: 8
  19. a 的值为: 9
  20. a 的值为: 10
  21. a 的值为: 11
  22. a 的值为: 12
  23. a 的值为: 13
  24. a 的值为: 14
  25. a 的值为: 15
  26. 0 x 的值 = 1
  27. 1 x 的值 = 2
  28. 2 x 的值 = 3
  29. 3 x 的值 = 5
  30. 4 x 的值 = 0
  31. 5 x 的值 = 0

2.2 多层for循环

for循环中又有循环嵌套,就表示多层循环了。

千锋Go语言的学习群:784190273

对应视频地址:

https://www.bilibili.com/video/av47467197

源代码:

https://github.com/rubyhan1314/go_foundation


文章转载自RubyHan,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论