for循环语句 大纲
  • for循环
  • 死循环
  • break跳出循环
  • continue跳过当前循环
  • goto转移语句
  • 总结

视频地址:https://www.bilibili.com/video/BV14a4y177XG?p=9

for循环

您可能学过别的编程语言,并知道绝大多数语言的循环有for、while、do while三种

但是在Go语言中,只有一种循环,就是for循环

for流程

与if语句相同,Go语言的for循环与C语言也有如下区别:

(){}
package main
import "fmt"
func main(){
    for i:=0;i<10;i++{
        fmt.Println("你好帅/美")
    }
    // 同样地,前置语句中声明的变量作用域也仅限于for内
    // 下面语句会报错 undefined: i
    // fmt.Println(i)
}

跟C语言一样,可以令for循环的前置或后置语句为空,只添加条件

var i, sum = 1, 0
for sum<10{
    sum+=i
}
fmt.Println(sum) // 10
死循环
for true
// 下面与for true{}等价
for{
    fmt.Println("你怎么这么好看?")
}
break跳出循环

如果我们不想一直死循环下去,当某个条件成立时退出循环,可以使用break语句

import "fmt"
i:=0
for{
    fmt.Println("你怎么这么好看?")
    i+=1
    if i==3{
        fmt.Println("天生的")
        break
    }
}
/*
你怎么这么好看?
你怎么这么好看?
你怎么这么好看?
天生的
*/
continue跳过当前循环

与break退出整个循环不同,continue是跳过当前循环,也就是说在for代码块中遇到continue,其后的所有语句将被跳过

for i:=1;i<=3;i++{
    if i==2{
        // 不妨将continue换成break试试,看看它们的区别
        continue
    }
    fmt.Println(i)
}
/*
continue结果    break结果
1              1
3
*/
goto转移语句

Go 语言的 goto 语句可以无条件地转移到过程中指定的行

goto 语句通常与条件语句配合使用。可用来实现条件转移, 构成循环,跳出循环体等功能

但是,在结构化程序设计中一般不主张使用 goto 语句, 以免造成程序流程的混乱,使理解和调试程序都产生困难

它的格式如下:

goto label;
..
.
label: statement;

goto流程

例子

package main
import "fmt"
func main(){
    i:=0
    test: fmt.Println("当前i的值为", i)
    for i<3{
        i++
        if i==2{goto test}
        fmt.Println(i)
    }
    fmt.Println("结束")
}
/*
当前i的值为 0
1
当前i的值为 2
3
结束
*/
总结

条件与循环进行碰撞交融,将会使程序更加有意思