Go by Example-循环

mac2022-06-30  20

Go By Example-循环语句

Go和其他大多数语言不太一样,没有While和Do-Whiile形式的循环,只有一个for,来实现循环。

基本结构

for循环的基本结构是这个样子

for 变量;条件;增量{内容}

首先,区别于其他语言for循环的{}前面的部分,没有括号。 然后{}里必须写内容,不能为空。;之间的内容,可以随意省略 通常写法,一个完整的for循环

for a:=0;a<5;a++{ fmt.Println(a) }

第一部分是一个赋值的操作,第二部分是一个判断条件,第三部分是一个增量的设定。 Go的for循环比较灵活 我们也可以只写第一部分

for i := 1; ; { fmt.Printf("i=%d\n",i) if i > 10 { break } i++ }

如果只写第一部分,判断条件和增量设定就要在循环过程设置了,比如这里使用了if条件。

或者只写第二部分

var j int =1 for ; j<5; { fmt.Printf("j=%d\n",j) j++ }

当然也可以只写第三部分

var k int =1 for ; ;k++ { if k>5{ break } fmt.Printf("k=%d\n",k) }

或者你干脆什么都不写

for ;;{ fmt.Println("无限循环") break } //全省略,一般简写为下面形式 for{ fmt.Println("无限循环") break }

因为Go中没有where语句,如果想实现一个无限循环,我们就可以使用这种情况

综合示例

package main import "fmt" func main() { i:=1 for i<=3{ fmt.Println(i) i++ } for{ fmt.Println("无限循环") break } here: for { fmt.Println("想不到吧") for j:=0;j<3 ;j++ { break here } } fmt.Println("通过break添加标签here,跳出双重循环") }

观察发现你会看到break后面跟了一个here,而这个here在for循环之前出现过一次。 这里的here可以是任何的非Go语言关键字,起到一个类似goto的作用,但是它和goto还不一样。 关于for循环大概可以总结为下面三点 1.break的标签必须在最外层for循环的前面。 2.break的标签执行之后,会继续for循环后面的代码,不会再重新进入循环。 3.break加标签用法,在嵌套的循环中使用。

转载于:https://www.cnblogs.com/c-x-a/p/11474921.html

最新回复(0)