跳转控制语句-break
- 看一个具体需求,引出 break
- 随机生成 1-100 的一个数,直到生成了 99 这个数,看看你一共用了几次?
- 分析:编写一个无限循环的控制,然后不停的随机生成数,当生成了 99 时,就退出这个无限循环==>break 提示使用
我们为了生成一个随机数,还需要个rand设置一个种子. time.Now().Unix() : 返回一个从1970:01:01 的0时0分0秒到现在的秒数 rand.Seed(time.Now().Unix()) rand.Seed(time.Now().UnixNano()) UnixNano将t表示为Unix时间,即从时间点1970:01:01 UTC到时 间点t所经过的时间(单位纳秒)。 如何随机的生成1-100整数 n := rand.Intn(100) + 1 // [0 100)
- 随机生成1-100的一个数,直到生成了99这个数,看看你一共用了几次
var count int = 0 for { rand.Seed(time.Now().UnixNano()) n := rand.Intn(100) + 1 fmt.Println("n=", n) count++ if (n == 99) { break //表示跳出for循环 } } fmt.Println("生成 99 一共使用了 ", count)
- 基本介绍:
- break 语句用于终止某个语句块的执行,用于中断当前 for 循环或跳出 switch 语句。
- 基本语法:
{ …… break …… }
- 以 for 循环使用 break 为例,画出示意图
break 的注意事项和使用细节
- break 语句出现在多层嵌套的语句块中时,可以通过标签指明要终止的是哪一层语句块
lable2: for i := 0; i < 4; i++ { //lable1: // 设置一个标签 for j := 0; j < 10; j++ { if j == 2 { //break // break 默认会跳出最近的for循环 //break lable1 break lable2 // j=0 j=1 } fmt.Println("j=", j) } }
- 对上面案例的说明
- break 默认会跳出最近的 for 循环
- break 后面可以指定标签,跳出标签对应的 for 循环
- break演示案例
- 100以内的数求和,求出 当和 第一次大于20的当前数
sum := 0 for i := 1; i <= 100; i++ { sum += i //求和 if sum > 20 { fmt.Println("当sum>20时,当前数是", i) break } }
- 实现登录验证,有三次机会,如果用户名为”鲁班七号” ,密码”666”提示登录成功,否则提示还有几次机会.
var name string var pwd string var loginChance = 3 // for i := 1 ; i <= 3; i++ { fmt.Println("请输入用户名") fmt.Scanln(&name) fmt.Println("请输入密码") fmt.Scanln(&pwd) if name == "鲁班七号" && pwd == "666" { fmt.Println("恭喜你登录成功!") break } else { loginChance-- fmt.Printf("你还有%v次登录机会,请珍惜\n", loginChance) } } if loginChance == 0 { fmt.Println("机会用完,没有登录成功!") }