跳转控制语句-break
随机生成1-100的一个数,当生成到99这个数的时候,看下生成了多少次
1、用for
无限循环
2、随机数==99时,break
并计数
package main
import (
"fmt"
"math/rand"
"time"
)
func main() {
var count int = 0
for {
//生成种子数,纳秒级
rand.Seed(time.Now().UnixNano())
n := rand.Intn(100) + 1
fmt.Println("n=", n)
count++
if n == 99 {
break //跳出循环
}
}
fmt.Printf("生成99,一共用了%v次 \n", count)
}
break 的注意事项和使用细节
break
语句出现在多层嵌套的语句块中时,可以通过标签指明要终止的是哪一层语句块
- 看一个案例
label2:
for i := 0; i < 4; i++ {
//label1:
for j := 0; j < 10; j++ {
if j == 2 {
break label2
}
fmt.Println("j=", j)
}
}
break
默认会跳出最近的for
循环
break
后面可以指定标签
,跳出标签对应的for
循环
练习
1、100 以内的数求和,求出 当和 第一次大于 20 的当前数 。
var sum int = 0
for i := 1; i <= 100; i++ {
sum += i
if sum > 20 {
fmt.Println("当前数=", i)
break
}
}
2、实现登录验证,有三次机会,如果用户名为”张无忌” ,密码”888” 示登录成功,否则 提示 还有几次机会。
var loginNum int = 3
var user string
var password string
for {
fmt.Println("请输入用户名")
fmt.Scanf("%s", &user)
fmt.Println("请输入密码")
fmt.Scanf("%s", &password)
if user == "song" && password == "888" {
fmt.Println("登录成功!!!!")
break //中止循环
} else {
loginNum--
if loginNum == 0 {
fmt.Println("错误超过3次,禁止登录!!")
break //中止循环
}
fmt.Printf("请检查你的用户名和密码,你还剩下%v次机会!\n", loginNum)
}
}