跳到主要内容

8、循环语句

循环语句

image-20230206165351450

1、循环语句(for循环)

在go是,循环语句只有for,没有while,但是for是可以实现while功能的;

循环语句:
sum := 0
for i := 1; i <= 100; i++ {
sum += i
}

n := 0
for n < 10 { //没有初始值,相当于 while 循环;
n++
}

for {
fmt.Println("dead loop")
}

for 语句不需要括号包裹起来;没有初始值,相当于 while 循环;没有初始值,没有循环条件,表示死循环;

1.案例:for循环

image-20230206165403556

package main

import "fmt"

func main() {
sum := 0
for i := 1; i <= 100; i++ {
sum += i
}
fmt.Printf("sum=%d", sum)
}

2.案例:for循环实现while效果

image-20230206165410980

package main

import "fmt"

func main() {
a := 15
b := 10

for a >= b {
b++
fmt.Printf("b=%d\n", b)
}
}

3.案例:for死循环

image-20230206165419730

image-20230206165425791

package main

import "fmt"

func main() {
for {
fmt.Println("dead loop")
}
}

2、循环控制语句

循环控制语句:

break语句:用于中断当前 for 循环
continue语句:跳过当前循环的剩余语句,然后继续进行下一轮循环
goto语句:将控制转移到被标记的语句

1.案例:break语句

image-20230206165434347

package main

import "fmt"

func main() {
a := 10
for a < 20 {
fmt.Printf("a=%d\n", a)

a++
if a > 17 {
break //跳出整个循环
}
}
}

2.案例:containue语句

image-20230206165446327

package main

import "fmt"

func main() {
a := 10
for a < 20 {
a++
if a == 17 {
continue //跳出当前循环
}
fmt.Printf("a=%d\n", a)
}
}

3.案例:goto语句

说明:

  • goto语句很少使用的,来回跳转,不利于理解和调试;

  • 相当于containue

image-20230206165455984

package main

import "fmt"

func main() {
a := 10
LOOP:
for a < 20 {
a++
if a == 17 {
goto LOOP // goto语句相当于continue
// continue //跳出当前循环
}
fmt.Printf("a=%d\n", a)
}
}