Overview
- for语法
package main
func main() {
for {
}
}
- for循环的四种形式
- 死循环
- 条件判断
- 变量&条件
- 变量&条件&赋值
- continue
在for循环中,当循环遇到continue关键字时,会停止当前循环,开始下一次循环
- break
在for循环中,当循环遇到break关键字时,会跳出该循环
- for循环的标签
对for进行打标签,然后可以通过break和continue实现多层循环的跳出和终止
- goto
跳跃到指定的行,然后向下执行代码
Description
1)For循环
1.猜年龄,一直提示用户输入年龄,如果比18大,则显示猜测的结果大了,如果比18小,则显示猜测的结果小了,只有输入等于18,显示猜测结果正确,然后退出循环
package main
import "fmt"
func main() {
var age int
var flag bool = true
for flag {
fmt.Print("Please enter your age: ")
fmt.Scan(&age)
if age > 18 {
fmt.Println("大了")
} else if age < 18 {
fmt.Println("小了")
} else if age == 18 {
fmt.Println("正确")
flag = false
}
}
}
2.使用循环输出1-100所有整数
package main
import "fmt"
func main() {
for i := 1; i < 101; i++ {
fmt.Println(i)
}
}
3.使用循环输出1 2 3 4 6 7 8 9 10,即:10以内除了5以外的整数
package main
import "fmt"
func main() {
for i := 1; i < 11; i++ {
if i != 5 {
fmt.Println(i)
}
}
}
4.输出1-10内的所有奇数
package main
import "fmt"
func main() {
for i := 1; i < 11; i++ {
if i%2 == 1 {
fmt.Println(i)
}
}
}
5.输出1-10内的所有偶数
package main
import "fmt"
func main() {
for i := 1; i < 11; i++ {
if i%2 == 0 {
fmt.Println(i)
}
}
}
6.求1-100的所有整数的和
package main
import "fmt"
func main() {
n := 0
for i := 1; i < 101; i++ {
n = n + i
}
fmt.Println(n)
}
7.输出10-1所有整数
package main
import "fmt"
func main() {
for i := 10; i > 0; i-- {
fmt.Println(i)
}
}
2)continue
1.Continue: 遇到continue停止当次循环,执行下一次循环
package main
import "fmt"
func main() {
for {
fmt.Println("Golang")
continue
fmt.Println("Linux")
}
}
这是一个死循环,当遇到continue时,则停止当次循环,开始执行下一次循环
3)多循环嵌套
package main
import "fmt"
func main() {
for i := 1; i < 4; i++ {
for j := 1; j < 5; j++ {
if i == 3 {
continue
}
fmt.Println(i, j)
}
}
}
4)break
当循环遇到break,跳出循环
package main
import "fmt"
func main() {
for {
fmt.Println("Golang")
break
fmt.Println("Linux")
}
}
多循环嵌套
package main
import "fmt"
func main() {
for i := 1; i < 4; i++ {
for j := 1; j < 5; j++ {
if j == 3 {
break
}
fmt.Println(i, j)
}
}
}
5)for循环的标签
1.对for循环打标签 标签: for {},continue终止当前标签指向的循环
package main
import "fmt"
func main() {
f1:
for i := 1; i < 4; i++ {
for j := 1; j < 5; j++ {
if j == 3 {
continue f1
}
fmt.Println(i, j)
}
}
}
当循环开始,1 1,1 2, 1 3时,j=3,则满足if条件,continue 则跳出循环,而此刻continue后是外层循环的标签f1,则是跳出外层循环,所以结果是1 1,1 2, 2 1, 2 2,3 1,3 2
2.对for循环打标签,标签:for{},break跳出当前标签指向的循环
package main
import "fmt"
func main() {
f1:
for i := 1; i < 4; i++ {
for j := 1; j < 5; j++ {
if j == 3 {
break f1
}
fmt.Println(i, j)
}
}
}
同样,循环开始是1 1, 1 2,1 3,当j==3时满足if条件,则进行break跳出当前循环,此时break f1是跳出指定标签的循环,则跳出外层循环,结果则是1 1, 1 2
6)Goto
对指定行打标签,goto直接跳转到指定行然后执行代码
package main
import "fmt"
func main() {
fmt.Print("这是银行系统,请输入姓名办理业务: ")
var name string
fmt.Scan(&name)
if name == "Jeremy" {
goto VVIP
} else if name == "Kelvin" {
goto VIP
}
fmt.Println("预约")
VIP:
fmt.Println("排队")
VVIP:
fmt.Println("办理业务")
}